从eclipse内部运行时如何访问<tomcat> \ bin \ *。属性?</tomcat>

时间:2011-02-17 21:42:48

标签: java eclipse tomcat configuration classpath

当您在Eclipse中配置服务器以使用本地Tomcat安装(服务器视图)时,是否有人知道在Eclipse内部运行的Tomcat是否真正使用<tomcat>\bin\目录?

例如:我正在使用同事jar,后来需要 X.properties 文件。我已被指示将该属性文件放在<tomcat>\bin\目录中。这对我来说有点奇怪,但失败的路线就是:

InputStream in = new FileInputStream("X.properties");

无论如何,我很确定editing any of the Server config文件对我没用,虽然我对任何建议持开放态度。或者我的启动配置(下面)中有什么东西可以改变?

enter image description here

无论如何,我得到以下堆栈跟踪:

java.io.FileNotFoundException: X.properties (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:106)
    at java.io.FileInputStream.<init>(FileInputStream.java:66)
    at com.mycompany.myteam.colleaguesproject.colleaguesservlet.init(colleaguesservlet.java:93)
    at javax.servlet.GenericServlet.init(GenericServlet.java:212)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:448)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

非常感谢任何帮助! : - )

2 个答案:

答案 0 :(得分:1)

Java将您启动它的目录指定为“工作目录”,并且任何相对路径都相对于该目录。在这种情况下,这是Tomcat的bin目录,其中包含Tomcat的启动脚本。

您应该将属性文件放在C:\ apache-tomcat-5.5.25 \ bin中以使其工作,尽管这对于java属性文件来说不是一个好习惯。在Java的类路径中读取它们是标准的,并且更加灵活。

答案 1 :(得分:1)

我完全同意mblinn!

Eclipse创建一个tomcat服务器的本地实例,其中eclipse.exe是Main应用程序。

尝试将您的X.properties文件放在eclipse根文件夹中。