android - gradle项目中的输入流不能为空异常
问题描述
我有主课
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
目录中
我的项目文件:
当我运行项目时,它给出输入流不能为空异常。
解决方案
资源路径没有被分隔,\
而且它们从资源根开始。在这种情况下,"/img/h1.jpg"
假设您的 IDE 在运行时正确包含类路径中的资源,则路径应该可以解决问题。
getResource
( AsStream
) 不通过文件路径访问数据;数据可能根本不作为文件提供,而是作为 JAR 文件中的条目提供。如果您需要引用未包含在类路径中的文件,请使用File
's 功能转换为 URI 或使用FileInputStream
:
new Image(new File(".\\build\\resources\\main\\img\\h1.jpg").toURI().toString())