java 擷取Web項目的實體路徑,以前也用過不過忘了,現在寫在這裡記錄下免得以後忘了好找,哈哈...
方法有好多種,以下第一種,是我用過的且通過了。
package test;
public class Path {
/**
* @param args
*/
void printpath(){
String path=this.getClass().getResource("/").getPath();//得到d:/tomcat/webapps/工程名WEB-INF/classes/路徑
path=path.substring(1, path.indexOf("WEB-INF/classes"));//從路徑字元串中取出工程路勁
System.out.println(path);
}
public static void main(String[] args) {
Path p=new Path();
p.printpath();
}
}
注意:在jsp頁面中同樣可以使用
輸出:d:/tomcat/webapps/工程名/
以下的與這相關的參考:
public class CreateXmlAction extends HttpServlet {
private ServletConfig config;
public void init(ServletConfig config) throws ServletException {
this.config = config;
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String filePath = config.getServletContext().getRealPath("/");
}}
或者直接在繼承了HttpServlet的Servlet中寫:
String filePath=this.getServletConfig().getServletContext().getRealPath("/"); |
Class clazz = test.Test.class;
String name = clazz.getName().replace('.', '/');
URL url = Thread.currentThread().getContextClassLoader().getResource(name);
這個時候會得到"file:/D:/java/test/Test.class"這樣的url,你隻要去掉file:/即可 |
import java.io.File;
public class Test {
public static void main(String[] args) throws Exception {
System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
System.out.println(Test.class.getClassLoader().getResource(""));
System.out.println(ClassLoader.getSystemResource(""));
System.out.println(Test.class.getResource(""));
System.out.println(Test.class.getResource("/")); //Class檔案所在路徑
System.out.println(new File("/").getAbsolutePath());
System.out.println(System.getProperty("user.dir"));
}
} |