我有最简单的所有简单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会导致这个错误,我很想知道......
| 归档时间: |
|
| 查看次数: |
6962 次 |
| 最近记录: |