我不确定以前是否回答过这个问题,我尝试搜索我要问的问题,但找不到满意的内容。如果有人可以向我指出类似的问题,那将会有所帮助。
我想做的是将具有外部文件(例如图像)的 eclipse 程序打包到单个文件中,而不是 jar 文件和放置在同一目录中的支持文件。
我不确定这是否可能,但是 Eclipse 中是否有某种方法可以让您以某种方式将外部文件与 jar 文件一起打包到一个可以轻松执行的整洁文件中?
<小时/>编辑:
感谢 ortis 和 Thorbjørn Ravn Andersen,我知道了如何做到这一点。以下是解决该问题的步骤:
首先,确保所有外部文件都位于 src 文件夹中,而不是 bin 或工作区或其他任何位置。如果您的项目中有包,它们将显示为文件夹,并且外部文件必须放入这些文件夹中才能在该包中使用。
对于外部文件的调用,不要这样做:
Image img = new Image("fileName");
而是这样做:
Image img = new Image(getClass().getResourceAsStream("fileName"));
同时确保“fileName”位于 src 文件夹或包文件夹中(如果您有包)。
几点:
- 如果您使用主构造函数或函数调用之外的文件名初始化全局变量,则 getClass() 将不起作用。使用:
yourClassName.class.getResourceAsStream("fileName");
-如果您使用 JavaFX Scenebuilder 并且需要打包外部 CSS 文件,here是一个解决方案,它将帮助您在程序中加载样式表,而不是使用 .fxml 文件来执行此操作。
-InputStream 变量可以分配
的结果getClass().getResourceAsStream("fileName"));
并被用来代替整个困惑。
最佳答案
是的。您必须将所有外部文件作为输入流引用(因为您希望类加载器从 jar 文件中获取它们),然后使用 http://launch4j.sourceforge.net/ 将生成的单个 jar 文件包装为 EXE 文件。
关于java - 使用外部文件打包 Eclipse 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29415348/