a875969485
a875969485
采纳率0%
2016-08-20 08:28 阅读 1.7k

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条回答 默认 最新

  • xionglangs 编程爱好者熊浪 2016-08-21 01:59

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

    点赞 3 评论 复制链接分享
  • baidu_31846095 梦沧海_1203 2016-08-20 11:14

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

    点赞 评论 复制链接分享
  • theUncle paavochan 2016-08-22 02:21

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

    点赞 评论 复制链接分享
  • sunguoqiang1213 println小强 2016-08-22 02:42

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

    点赞 评论 复制链接分享
  • clcazhmm 小语J 2016-08-22 07:19

    两个路径都是对的,项目运行路径。
    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下运行。所以才显示的此种路径。

    点赞 评论 复制链接分享

相关推荐