只是为了澄清我对这个问题的立场:
一直在寻找。找不到对我有用的解决方案......
我有一个文件夹格式:
src/main/java/packages/javafiles.java (there are several)
src/main/resources/Prolog_Files/fileIWantToLoad.pl
在我的代码中,我必须说明绝对路径:
String currentTheory = "src/main/resources/Prolog_Files/kb.pl";
然后加载它:
Theory theory = new Theory(new FileInputStream(currentTheory));
这样当我运行我的JavaFX应用程序并运行测试时,它可以完美地运行。
但是,当我构建一个Jar时,我收到错误:
Caused by: java.io.FileNotFoundException: src\main\resources\Prolog_Files\kb.pl (The system cannot find the path specified)
我已经做了很多寻找如何使这项工作;我尝试过,但未能使用:
File currFile = new File(getClass().getClassLoader().getResource("/src/main/resources/Prolog_Files/kb.pl").getFile());
和
InputStream stream = getClass().getResourceAsStream("main/resources/Prolog_Files/kb.pl");
以及尝试将该文件夹作为资源包含在IntelliJ内部,移动文件夹,尝试引用.pl文件而不包含路径信息。
4小时后撕掉我的头发 - 请帮帮忙!
编辑:只是添加,我没有使用Maven,ANT或类似的东西。我只是使用IntelliJ提供的任何东西。
谢谢!