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

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 asp.textbox后台赋值前端不能显示什么原因
  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误