首页 > 解决方案 > java加载文件夹中jar和其他文件的顺序

问题描述

我在同一个文件夹中有一个文件和一个 jar。

a.jar
env.properties

a.jar 还包含具有不同值的 env.properties 文件。

当我使用时java -cp path_to_folder/* ClassName,java 正在读取 a.jar -> env.properties 文件内容。当我使用时java -cp .:path_to_folder/* ClassName,java 正在读取 env.properties 文件的内容。

我们可以确定java使用的文件和jar的加载顺序吗?

标签: javajvmruntimeclasspathclassloader

解决方案


这不是您问题的直接答案,但可以解决您的任务:

您可以尝试分两步读取属性:

  1. 从类路径中读取您的 jar-internal env.properties。

  2. 通过文件系统访问读取您的 jar-external env.properties(您应该将其放在类路径之外):

    Properties properties = new Properties();

    properties.load(new FileInputStream(new File("./env.properties")));

然后决定(取决于哪些可用)要使用哪些属性。


推荐阅读