在我的gradle java项目中,如果我运行./gradlew run -PappArgs="['file.dat']"
,它就会被编译,我的应用程序会成功使用/src/main/resources/
中的文件。我已将Eclipse与gradle集成,并将我的项目导入Eclipse。当我在Eclipse中使用在项目的Run Configurations
参数列表中指定的filname运行应用程序时,它无法使用以下代码找到file.dat
:
import java.io.InputStream;
import java.util.Scanner;
public class MyClass {
public static void main(String[] args) {
final String fileName = args[0];
Scanner scanner = null;
try {
InputStream f = MyClass.class.getResourceAsStream(fileName);
scanner = new Scanner(f, "UTF-8"); // fails here saying f is null
} finally {
if (scanner != null) scanner.close();
}
}
}
项目树是经典的:myproj/src/main/java/MyClass.java
,myproj/src/main/resources/file.dat
和myproj/src/test/java/MyTest.java
。
答案 0 :(得分:1)
Eclipse的后退和祝福:您的所有资源(包含的文件和图片)必须位于项目的构建路径中。确保确实如此。如果仍然如此,请考虑不要使用您的查找文件的方法来阅读:一个很好的旧时尚
Scanner in=new Scanner(new File("src/main/resources/file.dat"));
通常会有效。