使用外部文件打包Eclipse程序

时间:2015-04-02 14:23:27

标签: java eclipse build package

我不确定以前是否回答了这个问题,我试着寻找我要问的那种问题,但我找不到令人满意的东西。如果有人能指出我一个类似的问题,那会有所帮助。

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

我不确定这是否可能,但是在eclipse中是否有某种方式允许您以某种方式将外部文件与jar文件一起打包在一个可以轻松执行的简洁文件中?


编辑:

感谢ortis和ThorbjørnRavnAndersen,我想出了如何做到这一点。以下是解决问题的步骤:

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

  2. 对于外部文件的调用,请不要执行以下操作:

    Image img = new Image("fileName");
    

    而是这样做:

    Image img = new Image(getClass().getResourceAsStream("fileName"));
    

    同时确保“fileName”在src文件夹或包文件夹中,如果你有包。

  3. 有些观点:

    - 如果使用主构造函数或函数调用之外的文件名初始化全局变量,getClass()将无效。使用:

    yourClassName.class.getResourceAsStream("fileName");
    

    - 如果您使用JavaFX Scenebuilder并且需要打包外部CSS文件,here是一个解决方案,可以帮助您在程序中加载样式表,而不是使用.fxml文件来执行此操作。< / p>

    - 可以为InputStream变量分配

    的结果
    getClass().getResourceAsStream("fileName"));
    

    并用来代替整个混乱。

1 个答案:

答案 0 :(得分:1)

是。您必须将所有外部文件作为输入流引用(因为您希望类加载器从jar文件中获取它们),然后使用http://launch4j.sourceforge.net/

将生成的单个jar文件包装为EXE文件