段力 2022-11-23 10:20 采纳率: 66.7%
浏览 17
已结题

Graalvm编译的swt程序运行不了

我有一个swt程序代码为


import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class xx {

public static void main (String [] args) {
    Display display = new Display ();
    Shell shell = new Shell(display);
    
    Text helloWorldTest = new Text(shell, SWT.NONE);
    helloWorldTest.setText("Hello World SWT");
    helloWorldTest.pack();
    
    shell.pack();
    shell.open ();
    while (!shell.isDisposed ()) {
        if (!display.readAndDispatch ()) display.sleep ();
    }
    display.dispose ();
}
}

我用graalvm编译它,javac xx.java -cp ./swt.jar 编译成功,然后用native-image构建native-image xx -cp .:./swt.jar也成功
但是我运行它时,却抛出异常,
SWT-JNI: ERROR(1523): Failed to resolve 'java/lang/Throwable'
Exception in thread "main" java.lang.NoSuchMethodError: org.eclipse.swt.widgets.Display.rendererClassInitProc(JJ)J
at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1259)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions$Support.getMethodID(JNIFunctions.java:1244)
at org.graalvm.nativeimage.builder/com.oracle.svm.core.jni.functions.JNIFunctions.GetStaticMethodID(JNIFunctions.java:413)
at org.eclipse.swt.internal.Callback.bind(Callback.java)
at org.eclipse.swt.internal.Callback.(Callback.java:137)
at org.eclipse.swt.internal.Callback.(Callback.java:88)
at org.eclipse.swt.internal.Callback.(Callback.java:66)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:1188)
at org.eclipse.swt.widgets.Display.create(Display.java:1091)
at org.eclipse.swt.graphics.Device.(Device.java:168)
at org.eclipse.swt.widgets.Display.(Display.java:643)
at org.eclipse.swt.widgets.Display.(Display.java:634)
at xx.main(xx.java:10)

我的graalvm版本为 22.3.0 jdk为17.0.5 os为ubuntu20.04 amd64
我该怎么办?

  • 写回答

2条回答 默认 最新

查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月24日
  • 已采纳回答 11月23日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题