当前位置: 首页 > 知识库问答 >
问题:

SWT运行在不同版本的java上

谈秦斩
2023-03-14

首先也是最重要的是,我对Java知之甚少,对SWT更是知之甚少,所以我就到此为止。今天早些时候,我试着运行我在上找到的这个简单程序https://mkyong.com/swt/swt-hello-world-example

以下是代码:

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 SWTHelloWorld {

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 ();
}

当我运行它时,会出现以下错误:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/eclipse/swt/widgets/Composite has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0

我从中了解到的是,SWT正在用Java11编译,而它应该用Java8编译,但是——这是一个很大的BUT——我没有Java11我删除了它,只有Java8,避免了这种问题。当我在我的终端中运行命令java版本和javac版本时,两种情况下我都得到了这个版本“1.8。0_331”,没有别的了。我还检查了我在Eclipse中的设置和配置,一切似乎都设置为在Java8上运行。最终,我在终端中尝试了这个命令javac目标1.8。0_331SWTHelloWorld.java目标正确的编译器,但我得到了javac:无效目标发布: 1.8。0_331。我不知道从那里去哪里。有人吗?

提前谢谢大家!

注:如果有必要的话,我在macOS Big Sur 11.4上。


共有1个答案

宋运锋
2023-03-14

卸载Java 11不会改变SWT本身编译的版本。您的应用程序至少需要Java 11,因为您正在使用的库SWT需要它。

 类似资料:
  • 问题内容: 我必须使用两个版本的Java(1.6.21和1.7)。我公司的代码取决于1.6_21,我们计划使用人工制品。我们正在本地测试工件,但是工件需要Java 1.7或更高版本。我希望我的默认Java主目录指向1.6_21,对于工件应为1.7。 但是问题出在我安装Java 7以后,它就将自身设置为默认值。我读过很多文章,它们解释了如何管理Java的两个版本,但是我的工件和Eclipse必须同时

  • 问题内容: 我公司购买了一种在页面上呈现ASP.NET控件的产品。该控件使用jQuery 1.2.3并将脚本标记添加到页面以引用它。如果控件以任何方式修改(包括修改以引用其他版本的jQuery),则控件的开发人员将不支持使用该控件。 我将要开始开发自己的控件,并希望使用jQuery 1.3的功能和速度改进。这两个控件都需要存在于同一页面上。 如何允许购买的控件使用jQuery 1.2.3和新的自定

  • 今天我和jenv一起玩,将Java1.8设置为全局版本,将1.7设置为本地项目。此后,mvn命令在全局位置显示为java版本12- 而Java版本显示如预期- 我试图卸载和安装maven通过sdkman再次,在Mac上。虽然它没有新鲜下载。我仍然得到同样的错误。 我该怎么解决这个问题?

  • 问题内容: 如何配置Windows命令对话框以在其中运行不同的python版本?例如,当我键入时,它运行python 2.7,而当我键入时,它运行python 3.3?我知道如何为一个版本而不是两个版本配置环境变量?我的意思是类似Linux终端的东西。 问题答案: Python的3.3主要介绍Python启动的Windows是安装到作为和安装程序。安装程序还会创建与和的关联。然后添加或作为第一行。

  • 问题内容: 我试图使用通常的方式运行Maven构建: 我收到一连串的错误,内容如下: 执行构建时如何使用-source 5。我的JAVA_HOME指向JDK 1.6。 问题答案: 将此添加到您的pom.xml中: 它也记录在Maven FAQ中。 有关更多信息,请参阅Compiler Plugin文档。

  • 我的应用程序在两个jboss版本jboss 4和jboss 7之间扩展。Jboss 4 intance正在通过eclipse运行。当我尝试通过[Jboss_HOME]/bin/standalone.bat运行Jboss 7时,它不会启动,并显示以下错误。 调用"C:\jboss as-7.1.1。最终\bin\standalone.conf.bat"警告JBOSS_HOME可能指向不同的安装-可能