从另一个 jar 文件访问资源
我有一个简单的结构:一个包含一批数据的数据jar文件,以及一个使用数据运行服务的service jar文件。为了使数据易于替换,我将它们分开,并且 service.jar 的类路径包含数据.jar所在的目录。
在服务.jar,我使用getResource来加载数据文件。如果数据文件直接位于文件夹中,则此方法有效,但当它们位于数据.jar内部时会失败;
此操作将失败:
all
+ globalclasspath
| + data.jar
| + mine.properties
+ daemons
+ service.jar
jsvc -cp globalclasspath:daemons/service.jar (...)
MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- null
但这有效:
all
+ globalclasspath
| + mine.properties
+ daemons
+ service.jar
jsvc -cp globalclasspath:daemons/service.jar (...)
MyClass.class.getClassLoader( ).getResource( "mine.properties" ); // <-- not null
我不想更改类路径(除非我可以将其更改为不依赖于数据jar文件名称的通用代码),但我可以更改getResource字符串(我已经尝试了/data/mine.properties和/data.jar/mine.properties,但无济于事)。是否可以进行更改,以便可以从 jar 中加载资源?