使用eclipse,当我只在我的计算机上使用该应用程序时,导出一个可运行的jar文件非常简单。程序正在使用的任何文件(精灵表,音频轨道等)仅存在于我的计算机上,因此仅将jar发送到另一台计算机将无法正常工作。
将jar打包以及所有必要文件的最简单方法是什么,以便我可以在任何机器上运行该程序?
答案 0 :(得分:1)
我从你的标签中看到你在Eclipse中工作。我不确定这种方法是否适用于其他IDE,如果您手动完成所有操作,我认为它根本无法工作(它依赖于编译器自动将资源复制到{ {1}}文件夹。
最简单的方法(至少我使用的方法)是定义另一个源文件夹(我喜欢bin
)。
然后,您只需将包添加到此源文件夹并转储相关图像即可。然后重建你的项目。
最后,您可以使用res
来获取文件。
导出为getClass().getResourceAsStream("package/path/file_name.whatever");
后,即使在其他计算机上也可以正常工作。
答案 1 :(得分:1)
如果您不要求其他文件是文件系统上的实际文件(这意味着您不能使用File
,FileInputStream
等)然后你可以使用资源系统。如果将它们放在JAR中,您可以像这样访问它们:
InputStream fileStream = SomeClassInYourJarFile.class
.getResourceAsStream("/path/to/file.png");
此示例将从您的JAR文件中的InputStream
条目中读取/path/to/file.png
- 即" file.png"文件夹内的文件"到"在文件夹"路径"。
这不是要求文件在JAR文件中 - 它可以从存储.class文件的任何地方加载它们,JAR与否。如果将它们放在源文件夹中,Eclipse会自动将它们复制到那个地方 - 所以如果你有一个包含名为path.to
的文件的包file.png
,上面的行也会有效。