我为什么选错了?

时间:2014-10-24 20:13:09

标签: java maven

我正在尝试访问我的java应用程序中的MANIFEST.MF文件。

我正在做以下

   //prints /usr/local/apache-tomcat-8.0.9/webapps/MyProject/WEB-INF/lib/activation-1.1.jar!/META-INF/MANIFEST.MF
    System.out.println( "We are looking at "+this.getClass().getClassLoader()
                        .getResource("META-INF/MANIFEST.MF"));` 
//Im looking to print  /usr/local/apache-tomcat-8.0.9/webapps/MyProject/META-INF/MANIFEST.MF


//prints-/usr/local/apache-tomcat-8.0.9/lib/
System.out.println("The base path is"+this.getClass().getClassLoader()
                        .getResource("."));

这是目录结构

MyProject
-src/main/java/my/packages/MyClass.java
-target
   -MyProject.war

关于如何纠正我的代码的任何想法都会很棒。

我的战争的目录结构

Myproject
META-INF            apidocs             other folders
WEB-INF             

1 个答案:

答案 0 :(得分:0)

您需要使用ServletContext.getResourceAsStream

我发现类加载器方法对于Web应用程序上的MANIFEST文件不可靠。

如果您的清单是由构建过程生成的,那么如果您从maven或eclipse wtp运行应用程序,它将无法可靠地运行。

问题的真实副本:How do I read the manifest file for a webapp running in apache tomcat?