eclipse中的项目大致显示了以下文件夹:
application
- src
- JRE System Library [1.6]
- Referenced Libraries
- lib
- rsc在我们的项目中,我们希望使用File >Export.>可执行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文件夹上右击。
但这也不起作用,因为eclipse不会自动将rsc文件夹复制到bin/-文件夹中。然后我们就不能再从终端(没有打包到jar)运行它了。
编辑:为什么eclipse不能正确处理这个问题?为什么它在“嵌套”输出文件夹方面有问题?在Build对话框的Source中,我可以轻松地添加rsc/-文件夹,并将输出文件夹设置为bin/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仍然讨厌我,并且抛出了java.io.FileNotFoundException: rsc/properties/Constants.properties,其中包含了大约100行代码。
有人知道怎么做吗?thx &问候群
发布于 2010-01-22 10:00:53
如果将rsc标记为源文件夹,Eclipse将将其内容复制到输出目录。或者,如果要对输出中的资源进行分组,可以将rsc移动到src下。
然后您可以使用Class.getResource("/properties/Constants.properties")或Class.getResource("/rsc/properties/Constants.properties"),无论您的应用程序是打包成jar还是从源运行,它都会工作。
作为一个侧面,file:协议只适用于普通文件,要访问jar中的文件,您必须使用类似于new URL("jar:file:app.jar!/rsc/properties/Constants.properties")的内容。
发布于 2010-01-16 01:30:08
您可以尝试:在对话框中,转到Libraries选项卡并选择"Add文件夹.“。从“类文件夹选择”对话框中选择rsc。rsc目录的内容现在将包含在可执行的jar文件中。
(请注意,rsc本身不会包括在内,因此您可能必须在rsc下添加一个新的子目录,以使jar中的目录结构正确。)
发布于 2010-01-15 17:08:07
对于这种使用,我建议使用Maven,它在创建jar时会自动执行。甚至还有Eclipse插件。
您也可以使用蚂蚁。
https://stackoverflow.com/questions/2073250
复制相似问题