我需要从罐子中加载属性文件。该罐子包含在war文件中。这是结构
ROOT.war
WEB-INF
lib
my.jar
here my.jar has following structure
my.jar
com
test
myservlet.class
WEB-INF
test.property
现在,我在一个servlet中编写了以下代码,如下所示:
InputStream stream = getServletContext().getResourceAsStream("/WEB-INF/test.properties");
Properties prop = new Properties();
prop.load(stream );
但是上面的代码我得到流为空。如果我将属性文件放在ROOT.war / WEB-
INF中,则可以正常工作。我有一个不错的主意,如果getResourceAsStream中的路径以“
/”开头,那么它将在上下文根目录中搜索资源。但是,如何读取位于jar的资源,该jar又在根应用程序的WEB-INF / lib中找到了?
谢谢与问候,阿米特·帕特尔
将其放在JAR的根目录中,并通过上下文类加载器而不是servletcontext来获取。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("test.properties");
// ...
该/WEB-INF
文件夹中的约定是特定于WAR文件,而不是JAR文件。摆脱它。如果确实需要将单独的JAR文件夹作为类路径的一部分,请/META-INF
改用。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("META-INF/test.properties");
// ...
我无法加载位于jar (project.service.jar)中的db.properties,它被war文件(project-web.war)引用。输出war将jar放在we b-INF/lib/project . service . jar中。rest war也使用jar,它使用jar中的一些服务。当战争开始时,我无法加载位于服务的jar文件中的db.properties。prop文件具有要在
和调用方法的位置:
我试图显示包含从资源加载的帮助的chm文件: 从NetBeans运行项目时,帮助文件将正确显示。不幸的是,当程序从jar文件运行时,它不起作用;它会导致异常。 在我看来,URI描述的jar的内部结构还没有被认识到。。。还有更好的办法吗?例如,使用BufferReader类? BuffereImage类修复了jpg文件的类似问题 没有任何转换到URI。。。 谢谢你的帮助...
如何加载放置在可执行jar文件的资源文件夹中的属性文件。在这里,我的应用程序本身就是一个jar,它自己执行。它需要在运行时根据代码中提到的路径找到这个属性文件(放在资源文件夹下)。我用过以下两种方法,但都没用。这里的重点是,当我在eclipse中执行时,这两个选项都可以正常工作,但当我将其打包到可执行jar中时,这两个选项都不起作用。它抛出NullPointerException。我在这里看到的唯
我有一个资源文件夹/包在我的项目的根,我"不"想要加载某个文件。如果我想加载某个文件,我会使用class.getResourceAsStream,我会没事的!!我实际上想做的是在资源文件夹中加载一个“文件夹”,循环该文件夹中的文件,并获得每个文件的流,并在内容中读取...假设在运行时之前没有确定文件名...那我该怎么办?有没有一种方法来获得一个文件夹中的文件列表在您的jar文件?请注意,带有资源的
我在maven项目的src/main/resource文件夹中下载了.sh文件,我正在通过下面的代码阅读它 如果我使用jar EX作为应用程序运行:- java-jar runscript.jar SCHEMA_NAME /users/ideaprojects/runscript/target/file:/users/ideaprojects/runscript/target/runscripts