應用絕對路徑與相對路徑
來源:互聯網
上載者:User
這個問題就得看你的設定檔放在哪裡啦,如果放在了項目的Classes目錄(或子目錄)下,你可以用**.Class.getResource('相對路徑')來擷取設定檔路徑.如果是其他目錄,那你只能在項目啟動時通過ServletContext擷取項目根目錄+設定檔的目錄來確定路徑.並把路徑放到類檔案可以引用的地方啦.
以下是我在做項目時寫的一個用於擷取路徑的類,寫的可能不太好.但還是希望能對你有所協助:
package com.example.web;
import java.io.File;
import java.net.URL;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
/**
* 路徑擷取類
* */
public class WebPath {
/**
* 擷取項目根目錄的絕對路徑
*
* @return 如:F:\TongJianpeng\J2EEUtil
* */
public static String getAbsolutePathWithProject() {
return System.getProperty("user.dir");
}
/**
* 擷取項目所在盤符
* */
public static String getDriverPathWithProject() {
return new File("/").getAbsolutePath();
}
/**
* 擷取項目根目錄的絕對路徑
*
* @return 項目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
* */
public static String getAbsolutePathWithWebProject(
HttpServletRequest request) {
return request.getSession().getServletContext().getRealPath("/");
}
/**
* 擷取項目根目錄下的指定目錄的絕對路徑
*
* @param 項目根目下的指定目錄
* .例如:/login/
* @return 項目根目下的指定目錄.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
* */
public static String getAbsolutePathWithWebProject(
HttpServletRequest request, String path) {
return request.getSession().getServletContext().getRealPath(path);
}
/**
* 擷取項目根目錄的絕對路徑
*
* @return 項目根目.例如<br/> F:\tomcat\webapps\J2EEUtil\
* */
public static String getAbsolutePathWithWebProject(ServletContext context) {
return context.getRealPath("/");
}
/**
* 擷取項目根目錄下的指定目錄的絕對路徑
*
* @param 項目根目下的指定目錄
* .例如:/login/
* @return 項目根目下的指定目錄.例如:<br/> F:\tomcat\webapps\J2EEUtil\login\
* */
public static String getAbsolutePathWithWebProject(ServletContext context,
String path) {
return context.getRealPath(path);
}
/**
* 擷取項目classpath目錄的絕對路徑
*
* @return classes目錄的絕對路徑<br/>
* file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/
* */
public static URL getAbsolutePathWithClass() {
return WebPath.class.getResource("/");
}
/**
* 擷取項目classPath目錄下的指定目錄的絕對路徑
*
* @param path
* classes目錄下的指定目錄.比如:/com/
* @return file:/F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/
* */
public static URL getAbsolutePathWithClass(String path) {
return WebPath.class.getResource(path);
}
/**
* 擷取指定類檔案的所在目錄的絕對路徑
*
* @param clazz
* 類
* @return 類檔案的絕對路徑.例如:<br/> 包com.Aries.Util.Web下的Main.java類.<br/>
* 路徑為:file:/
* F:/tomcat/webapps/J2EEUtil/WEB-INF/classes/com/Aries/Util/Web/
* */
public static URL getAbsolutePathWithClass(Class clazz) {
return clazz.getResource("");
}
}