在构建中从Jar中排除的任何文件?

时间:2014-07-10 16:11:54

标签: java netbeans build

我有一个位于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"

我正在使用除了标准清洁/构建dist以外的任何东西运行Net Beans,我不相信我必须对图像做任何特定的事情。

1 个答案:

答案 0 :(得分:0)

文件就在那里,您可以在自己喜欢的拉链工具中打开罐子,亲眼看看。

问题是你发布了一小段代码;你正在打开文件就好像它存在于你的硬盘上一样,而你应该把它作为类路径上的资源打开,因为它现在是-inside-你的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");