如何正确地将资源打包到 Jar 中

2022-09-02 21:53:32

我知道还有其他针对同一问题的问题,但问题是解决方案不适合我。我有一个小工具,应该读取我想要的文件并打包为资源,并依赖于其他项目(我正在使用Eclipse Helios),我希望将其作为jar而不是单个类。

作为 Eclipse 中的应用程序,我可以通过以下方式访问我的资源:

String path = MyClass.class.getClassLoader().getResource("resources/" + name + ".SOURCE").getPath();
System.out.println(path);
File file = new File(MyClass.class.getClassLoader().getResource("resources/" + name + ".SOURCE").toURI());
defaultSource = readSOURCEFile(file);

当且仅当我将资源文件夹放在输出路径(编译的源)下,而不是将其放在我的src文件夹中。

打包项目时,根文件夹或类文件夹中的资源根本不打包。如果我的 src 文件夹中有资源,它会打包在 src/resources 下。

我使用导出 - 可运行 Jar,我做错了什么?如果我尝试使用导出 - Jar,我可以正确打包我的源代码和资源,但我在设置主类时遇到问题,无法执行jar。清单是正确的,类在那里:-(。

第二个问题:在打包的jar中,我收到错误:URI不是分层的(在我手动移动jar中的资源后,我可以执行jar)

提前致谢!

我已将源链接到工作区,这是一个问题吗?


答案 1

在 Eclipse 中将项目根文件夹下的文件夹标记为“源文件夹”(右键单击该文件夹,转到“构建路径”>“用作源文件夹”)。然后像这样阅读资源:resource

InputStream is = MyClass.class.getClassLoader().getResourceAsStream(name + ".SOURCE");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line = reader.readLine();

答案 2

推荐