当前位置: 代码迷 >> java >> 为什么我在1.8.0_45中得到java.lang.NoSuchMethodError:createImageUsingNativeSize错误
  详细解决方案

为什么我在1.8.0_45中得到java.lang.NoSuchMethodError:createImageUsingNativeSize错误

热度:54   发布时间:2023-08-02 10:44:48.0

在某些情况下用于处理从某些webbrowsers(firefox)拖放的单个图像的代码在1.8.0_25中没有出现任何问题

image  = (Image) trans.getTransferData("image/x-java-image;class=java.awt.Image");

但现在在1.8.0_45造成了

java.lang.NoSuchMethodError: createImageUsingNativeSize
at sun.lwawt.macosx.CDataTransferer.getImageForByteStream(Native Method)
at sun.lwawt.macosx.CDataTransferer.platformImageBytesToImage(CDataTransferer.java:238)
at sun.awt.datatransfer.DataTransferer.translateBytes(DataTransferer.java:1659)
at sun.lwawt.macosx.CDataTransferer.translateBytes(CDataTransferer.java:142)
at sun.awt.dnd.SunDropTargetContextPeer.getTransferData(SunDropTargetContextPeer.java:269)
at sun.awt.datatransfer.TransferableProxy.getTransferData(TransferableProxy.java:73)
at java.awt.dnd.DropTargetContext$TransferableProxy.getTransferData(DropTargetContext.java:376)
at com.jthink.jaikoz.draganddrop.ImageHandler.createImageCell(ImageHandler.java:30)

这是新版OSX Java中的一个错误,还是我做错了什么,有一个简单的解决方法吗?

保罗

降级到JDK 1.8.0_31为我解决了这个问题。

我用“.jdk8”调用以下“jdk8”脚本

version=1.8.0_31
export JAVA_HOME=$(/usr/libexec/java_home -v $version) 

得到

java -version
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)

和错误java.lang.NoSuchMethodError:1.8.0_45中的createImageUsingNativeSize错误消失了

这个bug最终在JDK1.8.0_66中修复,请参阅

  相关解决方案