线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中出现异常:
我正在运行一个在这里找到的程序 我只是为它创建了一个Eclipse项目,并将其粘贴到一个新类中。程序代码假定您在某处有一个图片文件线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中出现异常:,java,Java,我正在运行一个在这里找到的程序 我只是为它创建了一个Eclipse项目,并将其粘贴到一个新类中。程序代码假定您在某处有一个图片文件 private void loadImage() { try { this.image = GraphicsUtilities.loadCompatibleImage(getClass(). getResource("A.jpg")); this.image = GraphicsUtilitie
private void loadImage() {
try {
this.image = GraphicsUtilities.loadCompatibleImage(getClass().
getResource("A.jpg"));
this.image = GraphicsUtilities.createThumbnail(this.image, 300);
} catch (IOException ex) {
ex.printStackTrace();
}
}
我将其编辑到src文件夹中的一个文件中。奇怪的是,不管我提供了什么路径,上面的异常都没有被抛出和捕获。相反,我从代码后面的某个方法中得到一个异常:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at GraphicsUtilities.loadCompatibleImage(UnsharpMaskDemo.java:563)
at UnsharpMaskDemo.loadImage(UnsharpMaskDemo.java:216)
at UnsharpMaskDemo.<init>(UnsharpMaskDemo.java:99)
at UnsharpMaskDemo$5.run(UnsharpMaskDemo.java:229)
无论我把图像放在哪里或写路径,我都会得到这个。我做错了什么?我假设该程序经过了良好的测试,可以开箱即用……getClass.getResourceA.jpg告诉JVM在当前类的类加载器的类路径上查找文件A.jpg somwhere
这解释了为什么在将其放入bin文件夹时它会工作,因为默认情况下它位于eclipse的类路径上。您还可以将其放在源文件夹中,因为eclipse在构建时应该将其复制到bin文件夹中
要使用另一个文件夹,可以右键单击eclipse项目,选择Build Path->Configure Build Path,然后在Libraries选项卡上使用Add Class Folder或Add External Class Folder将包含图像的文件夹添加到项目的类路径。是否验证了getClass.getResourceA.jpg返回的路径与放置.jpg的路径相同?嗯,如果我将其放置在bin文件夹中,它似乎可以工作,编译.class文件的地方。但是其他路径都不起作用,这确实让我很烦恼。本机如何验证?@user1507316您是否尝试了相对路径或者基本路径是您的“bin”文件夹?尝试URL=getClass.getResources/getResources/test.txt;字符串路径=url.toString;文件f=新文件路径;System.out.printlnf.getAbsolutePath;查看路径是否与文件系统中的路径相同