我有MainClass
public class MainClass extends Application {
@Override
public void start(Stage primaryStage) {
try{
Image img = new Image(getClass().getResourceAsStream(".\\build\\resources\\main\\img\\h1.jpg"));
System.out.println("ok");
}
catch(Exception ex){
System.out.println(ex.getMessage());
}
}
public static void main(String[] args) {
launch(args);
}
}
我的图像在
\build\resources\main\img\h1.jpg
目录中我的项目文件:
当我运行项目时,它给出Input流不能为null异常。
最佳答案
资源路径不由\
分隔。此外,它们从资源根目录开始。在这种情况下,假设您的IDE在运行时正确地将资源包含在类路径中,那么"/img/h1.jpg"
路径应该可以解决问题。getResource
(AsStream
)不通过文件路径访问数据;数据可能根本无法作为文件使用,但可以作为JAR文件中的条目使用。如果您需要引用类路径中未包含的文件,请使用File
的功能转换为URI或使用FileInputStream
:
new Image(new File(".\\build\\resources\\main\\img\\h1.jpg").toURI().toString())
关于android - gradle项目中输入流不能为空异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60843847/