如何正确地在Jar中打包资源

我知道还有其他问题针对同一个问题,但问题是解决方案对我不起作用。 我有一个小工具应该读取我想拥有的文件并打包为资源并依赖于其他项目(我使用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); 

当且仅当我将resources文件夹放在输出路径(编译源)下时,如果我将它放在我的src文件夹中。

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

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

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

提前致谢!

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

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

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