[英]java class path issue with properties file
在调用java main方法之前,我有一个批处理文件来设置类路径,请参阅下面的代码
SET CLASSPATH=%CLASSPATH%;libs/xyz1.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz2.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz3.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz4.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz5.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz6.jar
SET CLASSPATH=%CLASSPATH%;/resource
java -classpath %CLASSPATH% com.xyz.main
如果我将我的属性文件保存在资源文件夹中,它可以正常工作,但如果我将它保留在根文件夹中则不起作用。
SET CLASSPATH=%CLASSPATH%;libs/xyz1.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz2.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz3.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz4.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz5.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz6.jar
java -classpath %CLASSPATH% com.xyz.main
上面的类路径设置不起作用,我得到空指针异常
SET CLASSPATH=%CLASSPATH%;libs/xyz1.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz2.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz3.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz4.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz5.jar
SET CLASSPATH=%CLASSPATH%;libs/xyz6.jar
SET CLASSPATH=%CLASSPATH%;/
java -classpath %CLASSPATH% com.xyz.main
上面的类路径设置不起作用我得到相同的空指针异常。
我正在使用java util属性,如下所示。
InputStream inputStream = this.getClass().getResourceAsStream("/abc.properties");
getProperties().load(inputStream);
如果有人能帮我找到,为什么会这样,那将是非常好的。 先感谢您。
调用getResourceAsStream()
会使java查找可用于当前类加载器的资源,即可以在类路径中找到的资源。 如果要从文件系统中读取文件,请使用new
新FileInputStream(“abc.properties”)。 如果要继续从资源中读取文件,则必须将其包含在类路径中,放入一个jar文件中或作为单独的条目。
您甚至可以实现从类路径读取文件的逻辑,然后使用文件系统中找到的文件覆盖这些值。
BTW看看内置此功能的jackarata配置包。
您需要在CLASSPATH中包含“./”。 您实际上是在告诉JVM将其排除。
这是因为从当前目录检查了类路径.
会做得最好
即使您没有在资源文件夹中包含属性文件并运行java程序,如下所述,它也可以完美地工作
java -cp .;%CLASSPATH% com.xyz.main
注意 :cp是classpath的简写
包括完整的类路径
java -classpath。;%CLASSPATH%com.xyz.main
您还可以设置多个规范请参阅以下链接, http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/classpath.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.