java - 使用外部文件打包 Eclipse 程序

标签 java eclipse build package

我不确定以前是否回答过这个问题,我尝试搜索我要问的问题,但找不到满意的内容。如果有人可以向我指出类似的问题,那将会有所帮助。

我想做的是将具有外部文件(例如图像)的 eclipse 程序打包到单个文件中,而不是 jar 文件和放置在同一目录中的支持文件。

我不确定这是否可能,但是 Eclipse 中是否有某种方法可以让您以某种方式将外部文件与 jar 文件一起打包到一个可以轻松执行的整洁文件中?

<小时/>

编辑:

感谢 ortis 和 Thorbjørn Ravn Andersen,我知道了如何做到这一点。以下是解决该问题的步骤:

  1. 首先,确保所有外部文件都位于 src 文件夹中,而不是 bin 或工作区或其他任何位置。如果您的项目中有包,它们将显示为文件夹,并且外部文件必须放入这些文件夹中才能在该包中使用。

  2. 对于外部文件的调用,不要这样做:

    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/

相关文章:

java - 有没有办法使用 Java/JavaFX 在 Windows 上自动检测相机 (USB)?

java - 我可以要求 ANT 查看 .classpath 中的外部 jar 吗?

Java:Comparable<List<T 扩展 Comparable<T>>>

java - 在 Java 中将字符串转换为具有日期格式的字符串?

java - 使用 Java 将随机数转换为回文数

java - 使用正则表达式从句子中查找带有 [a-zA-Z] 的单词

java - JUnit 测试挂起

c - 如何将 CDT 安装到 Eclipse Luna

jenkins - Jenkins 可以同时运行多个作业吗

iphone - Xcode:无法在设备上启动应用程序(ExperitestServer:级别设置为:(3))