属性文件的java类路径问题

标签 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 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 寻找可用于当前类加载器的资源,即可以在您的类路径中找到的资源。如果您想从文件系统读取文件,请改用 newnew FileInputStream("abc.properties")`。如果你想继续从资源中读取文件,你必须将它包含到你的类路径中,要么进入你的 jar 文件之一,要么作为一个单独的条目。

您甚至可以实现从类路径读取文件然后用在文件系统中找到的文件覆盖值的逻辑。

顺便说一句,看看jackarata configuration内置此功能的软件包。

关于属性文件的java类路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14941423/

相关文章:

java - JSP Servlet 上传图像文件

windows - 计算日期 -10 天

tomcat - 使用自定义领域时,类路径如何在 tomcat6 中解析?

eclipse 插件修改启动配置文件

java - org.h2.jdbc.JdbcSQL异常 : Method is only allowed for a query

java - JNA映射以将输入/输出缓冲区传递给winapi函数

java - Java 中正确的容器/数据结构

batch-file - 如何检查cmd文件中的空值?

powershell - 从PowerShell设置Visual Studio环境变量

java - Eclipse 类路径不可传递