我试图将我的eclipse java项目导出为可运行的jar文件。在我的main函数中,我必须从我的项目中的data文件夹中读取数据文件,如下所示:
List<Data> trainDataSet = readDataFile("data/BTrain.arff");
我将数据文件夹构建为源文件夹。但是当我运行java -jar myproject.jar时 它给了我这个错误:
File not found: data/ATrain.arff
Exception in thread "main" java.lang.NullPointerException
at java.io.StreamTokenizer.<init>(StreamTokenizer.java:248)
at weka.core.converters.ArffLoader$ArffReader.<init>(ArffLoader.java:135)
at weka.core.Instances.<init>(Instances.java:126)
at project4.Project4.readDataFile(Project4.java:29)
at project4.Project4.testPrimalPerceptron(Project4.java:51)
at project4.Project4.main(Project4.java:145)
但是当我在eclipse中将项目作为java应用程序运行时,这很有效。
有什么想法吗?谢谢!
答案 0 :(得分:0)
将您的jar视为zip存档(它实际上是一个zip存档,尝试使用7zip打开它!)当您从eclipse导出项目时,可以将任何文件和文件夹放入其中。
完成后,您可以使用
从Jar中加载资源private static final String DATA_BTRAIN_ARFF = "data/BTrain.arff";
....
InputStream inputStream = getClass().getClassLoader().getResourceAsStream(DATA_BTRAIN_ARFF);
.....