Java的。在执行JAR时从“资源”读取文件夹:URI不是分层的

时间:2013-05-19 10:55:14

标签: java url jar classloader executable-jar

我将'profiles'(包含语言配置文件,我需要在执行JAR时使用)放入'resources'文件夹中。为了阅读它,我写道:

URL langProfilesURL = ClassLoader.getSystemResource("resources/profiles");
File langProfilesDir = new File(langProfilesURL.toURI());

我在IDE中运行时工作正常:URL为 文件:/ D:/ CODING / HappyState / bin / resources / profiles

但是当我执行HappyState.jar时,我得到:

java.lang.IllegalArgumentException: 

网址为 jar:file:/ D:/HappyState.jar!/ resources / profiles

请您告诉我该怎么做才能正确阅读'profiles'文件夹?非常感谢你!

1 个答案:

答案 0 :(得分:0)

请改用Class.getResource()方法。这处理所有情况,无论该项目是在平面文件系统上还是在jar文件中,甚至是在远程http位置上。 但是,您应该注意,此方法不允许您对File(实际文件夹)对象执行相同的操作。