![](/img/trans.png)
[英]java exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException
[英]Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException:
我試圖運行在這里找到的程序http://www.java2s.com/Code/Java/Advanced-Graphics/UnsharpMaskDemo.htm我只是為它創建了一個Eclipse項目,將其粘貼到新類中。 程序代碼假定您在某個地方有圖片文件
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().getResource("A.jpg")
告訴JVM在當前類的類加載器的類路徑上查找文件A.jpg
。
這就解釋了為什么將其放入bin
文件夾時可以工作的原因,因為默認情況下它位於eclipse的類路徑中。 您也可以將其放在源文件夾中,因為在構建時,eclipse應該將其復制到bin
文件夾中。
要使用另一個文件夾,可以右鍵單擊eclipse-project,選擇Build Path
Path-> Configure Build Path
然后在Libraries
-tab中使用Add Class Folder
或Add External Class Folder
將包含圖像的文件Add External Class Folder
添加到項目的classpath。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.