我用spring 执行定时计划,这个计划在有下载,上传图片等操作。我呢要把这些图片存起来,就要获得项目发布后的路径。请问怎么获得呢?我用DianBoSynchronismImpl.class.getClassLoader().getResource("").getPath();来获取
DianBoSynchronismImpl是我java类。但是这样获取到得好像是E:\myeclispeWorkbase\samplev\WebRoot\WEB-INF\classes
这样的路径部署到服务器上 又对不对呢?好像不是部署后的路径,因为我部署后的路径是
E:\apache-tomcat-6.0.30\webapps\samplev\WEB-INF
请问该如何获得发布后的项目路径。
DianBoSynchronismImpl是我java类。但是这样获取到得好像是E:\myeclispeWorkbase\samplev\WebRoot\WEB-INF\classes
这样的路径部署到服务器上 又对不对呢?好像不是部署后的路径,因为我部署后的路径是
E:\apache-tomcat-6.0.30\webapps\samplev\WEB-INF
请问该如何获得发布后的项目路径。
解决方案 »
- The declared package "" does not match the expected package "
- 关于Hibernate使用Criteria查询的问题,无法获得字段的异常?
- Mysql 中命令 desc不能用,一用就报错。为什么?
- log4j+sqlserver
- 大家设计用的什么工具?
- 紧急求解:我有一512M DDR服务器内存,浪潮服务器的,现在想把它使用在普通的PC上?为何检测不出呢?是不是与我的主板有关系呢?是不是在
- 在jb中bmp的测试程序出错!!
- EJB间如何引用?
- 怎样把java和XML结合起来,做一个画图工具。
- Spring Boot Mybatis Starter的Spring Mock MVC test Mock测试问题求助
- 求一个正则
- ckeditor默认字体大小设置?
request.getServletContext().getRealPath("\\src");
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String p =this.getServletContext().getRealPath("index.jsp");
System.out.println(p);
}输出的是:D:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\testWeb\index.jsp
你是自己建了WEB项目,又在这个项目上右键点Run出来的结果吧看来得扫扫盲...所有WEB项目都是类似你那种路径的,WEB项目在应用服务器例如TOMCAT下的默认部署路径像这样
Tomcat目录\webapps\WEB-INF\classes
而假设你在这个项目中,用MyEclise直接Run单个测试类的话,出现的Class.getResource()路径就类似
MyEclipse工作目录\项目名\webRoot\WEB-INF\classes
所以就得到你这个效果而假设你建立的是Java Project的话,部署路径就是项目路径
假设你的程序已导出为Jar或者classes包,并且部署在D:\test下,在不修改默认工作目录,并且在D:\test下执行程序的话,Class.getResource()的路径就是D:\test所以,你得搞请楚几个概念,1.项目开发位置 2.部署位置 3.执行路径 4.工作目录
/**
* 获得工程的classpath根目录
* @return String
*/
public static String getClasspath() {
try {
return Class.forName("随便一个类").getResource("/").getPath();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
如果你打包放到 tomcat里面运行,就会得到这个路径 E:\apache-tomcat-6.0.30\webapps\samplev\WEB-INF\classes
所以你完全可以使用这种方式得到路径。