小编Mar*_*olt的帖子

Mac OSX上的SWT无效线程访问(Eclipse Helios)

我有最简单的所有简单SWT程序(它甚至不显示hello world):

package com.samples.swt.first;

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

public class Main {
    public static void main(String[] args) {
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.open();
        while (!shell.isDisposed()) {
            if (!display.readAndDispatch()) {
                display.sleep();
            }
        }
        display.dispose();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我从Eclipse Helios在Mac OSX上运行它时,我收到以下错误:

***警告:由于Cocoa限制,必须在主线程上创建显示.
线程"main"中的异常org.eclipse.swt.SWTException:org.eclipse.swt.SwT.error(SWT.java:4197)org.eclipse.swt.SWT.error(SWT.java:4282)的无效线程访问)org.eclipse.swt.wt.Display.createDisplay(org.eclipse.swt.wts.wat)上的org.eclipse.swt.wt.SwT.error(SWT.java:4168)org.eclipse.swt. Display.java:822)位于org.eclipse.swt上的org.eclipse.swt.graphs.Device.(Device.java:130)的org.eclipse.swt.widgets.Display.create(Display.java:805).在com.samples.swt.first.Main.main(Main.java:8)的org.eclipse.swt.widgets.Display.(Display.java:687)上的widgets.Display.(Display.java:696)

据我所知,我正在做的一切正确.为什么我收到此错误?它说Display必须在主线程上创建,并且据我所知,它是在主线程上创建的.然后继续讨论Exception in thread "main"......

编辑:

错误现在消失了,我从使用切换swt-debug.jar到swt.jar.如果有人知道为什么调试jar会导致这个错误,我很想知道......

java eclipse swt

11
推荐指数
1
解决办法
6962
查看次数

标签 统计

eclipse ×1

java ×1

swt ×1