JavaWeb获得项目路径的问题

为了获得javaWeb项目的绝对路径。我写了个Class:ConstantUnit
其中得到路径方法如下:
private String getClasspath() {
try {
return Class.forName("com.const.util.ConstantUnit").getResource("/").getPath();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
现在我在当前包下新建了一个叫做Test的类,调用上面的方法,得到的路径是/E:/git/wx_repository/WXEduSystem/build/classes/
然后我在Servlet中调用得到的却是/E:/ProjectJ2E/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/WXEduSystem/WEB-INF/classes/
请问各位大神,哪个才是项目真实路径,这是什么原理呢?

5个回答

E:/git/wx_repository/WXEduSystem/build/classes/ 这个是真实的项目路径。
E:/ProjectJ2E/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/WXEduSystem/WEB-INF/classes/这个算是缓存的一种,可以删除,每次重启服务它又会自动出现。

xionglangs
编程爱好者熊浪 图片一般不会放在项目里面,万一需要重新更新全量包,那你这个就挂了。
大约 3 年之前 回复
xionglangs
编程爱好者熊浪 不过上传图片到服务器一般是重新建一个文件夹,上传图片到这个文件夹里面,之后把地址保存如数据库里面,之后src就可以等于这个地址读取图片了。
大约 3 年之前 回复
xionglangs
编程爱好者熊浪 E:/git/wx_repository/WXEduSystem/build/classes/
大约 3 年之前 回复
a875969485
a875969485 谢谢回复,请问假如我要上传一个文件(如图片)到webContent的某文件夹下,且能够在客户端读出这个文件,那么我应该上传的路径是哪个呢?
大约 3 年之前 回复

E:/ProjectJ2E/ 是不是你的workspace呢?这个还真没测试过,
/E:/ProjectJ2E/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/WXEduSystem/WEB-INF/classes/应该是你的项目上传到服务器的地址,而在当前类测试的结果是项目的物理地址

a875969485
a875969485 谢谢,第一个是确实我的workSpace,那么假如我要上传一个文件到这个项目的webContent的一个文件夹下,我应该传到哪个地址?
大约 3 年之前 回复

上传一个文件(如图片)到webContent的某文件夹下,且能够在客户端读出这个文件 这个应该取第一个地址,如果是第二个地址你一更新全量包,不是就没了

如果你用的eclipse的话E:/ProjectJ2E/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/WXEduSystem/WEB-INF/classes/这个应该是缓存文件
E:/git/wx_repository/WXEduSystem/build/classes/这个应该是真实的,如果你不想让他在缓存上跑的话,eclipse支持设置

两个路径都是对的,项目运行路径。
1) E:/git/wx_repository/WXEduSystem/build/classes 你不使用eclipse 就需要到这个路径下 ,cmd运行 java 你的类全名 。

2) E:/ProjectJ2E/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/WXEduSystem/WEB-INF/classes/
eclipse下支持的web服务器有多种运行方式,你这个方式是eclipse 在E:/ProjectJ2E/.metadata/.plugins/org.eclipse.wst.server.core路径下复制了一个叫tmp0临时服务器(相当于复制了一个tomcat),此方式是默认方式 可以修改的。使用tomcat运行项目,这时的路径是你的项目编译后放到了tmp0下运行。所以才显示的此种路径。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!