【发布时间】:2012-04-22 17:40:46
【问题描述】:
我在配置我的 Tomcat 项目时遇到了一点问题。简而言之,我正在开发一个动态网页项目,但对于我从哪里运行应用程序似乎有些混乱。
运行以下代码
File f = new File("");
System.err.println(f.getAbsolutePath());
产生输出C:/Eclipse,这恰好是我运行 Eclipse 的地方。
通常我希望这是输出目录,但这次不是这样。
我的 Eclipse 项目配置为将 myProject/WebContent/WEB-INF/classes 作为输出文件夹
如何配置到所需的目录?现在我需要使用不适用于项目所有成员的绝对路径。
【问题讨论】:
-
那么这里的问题是什么?当前目录是 Eclipse 启动应用程序的位置。您的输出文件夹 - 是您应用的类路径的一部分。
-
更新问题。我希望该目录成为工作区中项目的特定子文件夹,但我的配置似乎没有效果。
-
对不起,我还没关注你。您尝试配置的目录的目的是什么?您在问题标题中提到了“上下文根”,这是您所追求的吗?通常,Eclipse 会为此在动态 Web 项目目录中创建 WebContent 目录。
-
我的问题是 Eclipse 似乎很困惑,通常我希望根目录是编译文件所在的位置(bin 目录或等效文件),但是对于这个 tomcat 项目,它以某种方式设置为所在的文件夹我的 eclipse.exe 谎言。即使我尝试像上面所说的那样配置它。这会在尝试加载文件时导致问题。
-
好的。好吧,对于 webapps,你编译的类必须去
/WEB-INF/classes 没有摆脱它。当应用程序运行时,它的“根”可能会有所不同——取决于你从哪里运行它(例如,Eclipse 会给你项目根,Apache Tomcat 会给你其他东西,相对于它的路径)。如果您需要访问 Web 应用程序中的静态资源,则需要使用相对路径。试试 ServletContext.getResourceAsStream(),像这里:stackoverflow.com/questions/865819/…
标签: java eclipse tomcat enterprise contextpath