无法在Eclipse中运行SWT应用程序

Yat*_*wal 4 java eclipse swt

我正在按照Eclipse编辑器中的教程(单击Help -> Welcome -> Tutorials)进行操作.我完成了以下所有步骤:

此备忘单向您展示如何创建使用标准窗口小部件工具包(SWT)的"Hello World"应用程序.应用程序将只向用户显示一个空窗口.如果您在任何步骤需要帮助,请单击右侧的(?).让我们开始吧!

如果您还没有使用Java透视图,请在主菜单中选择Window> Open Perspective> Java,或单击下面的"Click to Perform"链接.

通过File> Import ...从主菜单打开Import向导,然后选择Plug-in Development> Plug-ins and Fragments.点击下一步.在"导入插件和片段"页面上,选择"从以下位置导入:活动目标平台".要导入的插件和片段:从指定位置找到的所有插件和片段中进行选择.导入为:具有源文件夹的项目.点击下一步.在Selection页面上,将org.eclipse.swt.{platform}.{os}.{arch}(例如:org.eclipse.swt.win32.win32.x86 for win32)添加到要导入的插件和片段:名单.单击完成.这将创建org.eclipse.swt.{platform}.{os}.{arch}项目,我们需要编译并运行该应用程序.

现在我们需要一个项目来存储我们自己的源代码.在主工具栏中,单击New Java Project按钮,或单击下面的链接.输入HelloWorldSWT作为项目名称,然后单击Finish.

由于我们的项目需要SWT,我们需要在项目属性中指定它.右键单击该项目,然后选择"属性".在Java Build Path页面中打开Projects选项卡,添加org.eclipse.swt.{platform}.{os}.{arch}项目,然后单击OK.

下一步是创建一个新类.在主工具栏中,单击New Java Class按钮(或下面的链接).如果尚未指定,请选择HelloWorldSWT/src作为源文件夹.输入HelloWorldSWT作为类名,并选中复选框以创建main()方法,然后单击Finish.Java编辑器将自动打开显示您的新类.

在Java编辑器中,在main()方法中输入以下Java代码:Display display = new Display(); Shell shell = new Shell(显示); shell.setText("Hello world!"); shell.open(); while(!shell.isDisposed()){if(!display.readAndDispatch())display.sleep(); } display.dispose(); 您将收到编译错误.右键单击Java编辑器并选择Source> Organize Imports,然后保存更改.

要运行应用程序,请在Package Explorer中右键单击您的类,然后选择Run As> Java Application.将出现一个新的空窗口,标题为"Hello world!".恭喜!您已成功创建Hello World SWT应用程序!

这是一个截图:

截图

但是当我尝试运行该程序时,不是按预期显示空白屏幕,而是将其转储到终端:

Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
no swt-cocoa-4233 in java.library.path
no swt-cocoa in java.library.path
Can't load library: /Users/devenkelling/.swt/lib/macosx/x86_64/libswt-cocoa-4233.jnilib
Can't load library: /Users/devenkelling/.swt/lib/macosx/x86_64/libswt-cocoa.jnilib

at org.eclipse.swt.internal.Library.loadLibrary(Library.java:331)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:240)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:101)
at HelloWorldSWT.main(HelloWorldSWT.java:11
Run Code Online (Sandbox Code Playgroud)

我正在使用安装了64位Eclipse的x64系统以及32位和64位版本的Java(我认为).请帮忙.谢谢.

Yat*_*wal 10

来源: Eclipse论坛

这对我有用:

  • Right-click在你的项目文件夹上HelloWorldSWT;

  • 转到Properties- >左侧边栏Java Build Path- >标签Projects;

  • org.eclipse.swt.cocoa.macosx.x86_64单击左侧的箭头展开文件夹;

  • 选择Native library location并单击Edit;

  • 单击Workspace按钮并选择org.eclipse.swt.cocoa.macosx.x86_64;

  • 点击OK几次;

而且你已经完成了!希望这有帮助.