我们在Eclipse中的项目大致显示以下文件夹:
application
- src
- JRE System Library [1.6]
- Referenced Libraries
- lib
- rsc
在我们的项目中,我们想使用“文件”>“导出”...>“可执行的JAR”。 这很好用,但有一个例外:如果我们想运行application.jar应用程序,仍然需要将rsc/文件夹复制到与application.jar相同的位置。 在rsc/中,我们有其他文件夹来分隔不同的部分。 基本上,我们使用以下代码加载这些片段(稍微修改了一下,但路径样式是正确的)。
strUrl = "file:rsc/properties/Constants.properties";
url = new URL(strUrl);
ImageIcon icon = new ImageIcon(url);
我可以右键单击rsc/ > Build Path > Use as Source Folder。但这也行不通,因为Eclipse不会自动将rsc文件夹复制到bin/-文件夹中。然后我们就无法从终端运行它(未打包成jar)。
编辑:为什么Eclipse无法正确处理此问题?为什么它在处理“嵌套”输出文件夹时会出现问题?在Build Path对话框的Source选项卡中,我可以轻松地添加带有输出文件夹设置为bin/rsc/的rsc/-文件夹,但似乎无法放置嵌套文件夹...
编辑2:现在我已经能够创建一个xml文件来使用ant构建东西,并成功将rsc文件夹包含在jar文件中。但由于相同的错误,它仍无法运行。我真的需要检查资源路径是否在JAR中吗?JAR的内容现在如下:
META-INF/
META-INF/MANIFEST.MF
configurator/
controller/
editor/
gui/
logic/
networking/
rsc/
rsc/gamesettings/
rsc/levels/
rsc/pics/
rsc/properties/
util/
但是Java仍然不喜欢我,抛出了一个大约100行的堆栈跟踪错误:java.io.FileNotFoundException: rsc/properties/Constants.properties
。
有人知道如何解决吗?谢谢和问候。
Class#getResource()
是什么意思?在Class
类中并没有这样的静态方法。 - m0skit0getResource(String)
。 - Dan Berindei