2010-03-10 33 views
2

我有一個程序,利用下面的方法來獲取圖像圖標的一定比例的實例:的Java UnsatisfiedLinkError awt.image

public ImageIcon createScaledImageIcon(String filename) { 
    ImageIcon icon = new ImageIcon(filename); 
    Image image = icon.getImage().getScaledInstance(cardWidth, cardHeight, Image.SCALE_SMOOTH); 
    icon.setImage(image); 
    return icon; 
} 

我不知道這是否是問題或沒有的源。但我收到以下錯誤消息:

線程「Image Fetcher 0」中的異常java.lang.UnsatisfiedLinkError:sun.awt.image.ImageRepresentation.setBytePixels(IIII [BIILsun/awt/image/ByteComponentRaster; I)V at sun.awt.image.ImageRepresentation.setBytePixels(本機方法)

在sun.awt.image.ImageRepresenation.setPixels(來源不明)

在sun.awt.image.ImageDecoder.setPixels(來源不明)

at sun.awt.image.GIFImageDecoder.sendPixels(Unknown Source)...

讓我知道是否有任何其他信息可以包含可能有用的信息。

回答

-1

javadoc說,Thrown if the Java Virtual Machine cannot find an appropriate native-language definition of a method declared native.

猜測Java不知道如何讀取U指定的圖像..使用一個.gif格式。

+0

我正在使用.gif的 另外,有問題的程序的方法直接在我的ide(drJava)中運行,但在終端運行時不起作用 – Allen 2010-03-10 04:25:42

+0

Java無法找到本機實現。 (因爲你可以看到在'sun.awt.image.ImageRepresentation.setBytePixels(Native Method)'中發生異常'')可能在classpath配置中有一些問題。嘗試配置你的類路徑。或者嘗試安裝最新版本的java。 – raj 2010-03-10 04:51:05

+0

圖像類型不是類路徑與這個問題沒有任何關係。顯然是一個損壞的JDK/JRE。 – EJP 2010-03-10 08:17:21

0

this link的用戶表示此錯誤可能是接收Java響應而不重新啓動的結果。但是,「重新啓動」是否會影響整個計算機,或者重新啓動java是未知的。

0

我在Windows機器上安裝Squirrel SQL時遇到了同樣的問題。事實證明,原因是PATH的環境設置。我已經將JAVA_HOME設置爲指向我安裝的Java版本,但是在路徑之前還有另一個Java版本,比我安裝的版本(它位於路徑的末尾)要早。

因此,當您鍵入「java」時,實際上正在命令行運行的Java版本的JAVA_HOME設置不正確。

如果你看到這個,你可以嘗試確保你的JAVA_HOME環境變量指向你安裝的Java並確保它首先出現在你的路徑中。