【问题标题】:are any files excluded from the Jar on build?构建时是否有任何文件从 Jar 中排除?
【发布时间】:2014-07-10 16:11:53
【问题描述】:

我有一个位于 src/com/example/myClass 的 java 源文件

我还有一个位于同一文件夹中的 javascript 文件。

private static final File jsScript = new File("src/com/example/myClass/controllerScript.js");

我的项目读取了 js 文件的内容并在测试中成功完成,即在 IDE 中运行该文件。

但是当我构建和运行我的 jar 时,就好像不再包含 javascript 一样,我是否要专门包含非 java 文件?文件的位置在构建时会移动还是相对。

唯一排除的选项是“**/*.java,**/*.form”

我正在为我的 jar 使用除标准清理/构建 dist 之外的任何东西运行 Net Beans,我认为我不必为图像做任何特定的事情。

【问题讨论】:

    标签: java netbeans build


    【解决方案1】:

    文件就在那里,你可以用你最喜欢的 zip 工具打开 jar 并亲自查看。

    问题是您发布的代码的小sn-p;您正在打开文件,就好像它存在于您的硬盘驱动器上一样,而您应该将其作为类路径上的资源打开,因为它现在位于您的 jar 中。

    从您的 MyClass 代码中试试这个:

    InputStream is = getClass().getResourceAsStream("controllerScript.js");
    // read data as per usual, don't forget to close the input stream
    

    这在 MyClass 中特别有效,因为 controllerScript.js 文件在同一个包中。或者,这适用于应用程序 jar 中的任何类:

    InputStream is = getClass().getClassLoader().getResourceAsStream("com/example/myClass/controllerScript.js");
    

    【讨论】:

    • 谢谢你的工作!因为我在静态上下文中使用它,所以我使用了 myClass.class 而不是 getClass,谢谢它让我对正在发生的事情有了更深入的了解。
    猜你喜欢
    • 1970-01-01
    • 2020-06-05
    • 2014-12-21
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多