属性文件的java类路径问题
在调用java main方法之前,我有一个批处理文件来设置类路径,请参见下面的代码属性文件的java类路径问题,java,batch-file,classpath,Java,Batch File,Classpath,在调用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 CLAS
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);
如果有人能帮我找到,为什么会这样,那就太好了。提前感谢您。您需要在类路径中包含“/”。实际上,您是在告诉JVM将其排除。调用
getResourceAsStream()
使java查找可用于当前类加载器的资源,即可以在类路径中找到的资源。如果要从文件系统读取文件,请使用new
newfileinputstream(“abc.properties”)`代替。若你们想继续从资源中读取文件,你们必须将它包含在你们的类路径中,或者包含在你们的一个jar文件中,或者作为一个单独的条目
您甚至可以实现从类路径读取文件的逻辑,然后用文件系统中找到的文件覆盖这些值
顺便说一句,看看内置此功能的软件包 这是因为类路径是从当前目录检查的
会做得最好即使您没有将属性文件包含在资源文件夹中并运行下面提到的java程序,它也会工作得很好
java -cp .;%CLASSPATH% com.xyz.main
注意:cp是类路径的缩写包含完整的类路径 java-classpath;%类路径%com.xyz.main 您还可以设置多个规格,请参阅以下链接,