一旦我尝试从java程序导出runnable jar,SWT库出错

时间:2016-02-23 08:23:25

标签: java eclipse jar swt

大家好我正在尝试使用Eclipse创建可运行的jar文件我使用两个外部库,第一个是SWT库,第二个是opencv应用程序在eclipse中工作得很好但是一旦我尝试导出jar文件我收到警告:

the warnings message

我尝试使用此命令使用终端运行jar文件时出现以下错误:

java -jar <name>.jar

我收到了以下错误:

***WARNING: Display must be created on main thread due to Cocoa restrictions.
org.eclipse.swt.SWTException: Invalid thread access
at org.eclipse.swt.SWT.error(SWT.java:4491)
at org.eclipse.swt.SWT.error(SWT.java:4406)
at org.eclipse.swt.SWT.error(SWT.java:4377)
at org.eclipse.swt.widgets.Display.error(Display.java:1097)
at org.eclipse.swt.widgets.Display.createDisplay(Display.java:848)
at org.eclipse.swt.widgets.Display.create(Display.java:831)
at org.eclipse.swt.graphics.Device.<init>(Device.java:130)
at org.eclipse.swt.widgets.Display.<init>(Display.java:721)
at org.eclipse.swt.widgets.Display.<init>(Display.java:712)
at org.eclipse.swt.widgets.Display.getDefault(Display.java:1427)
at detectingApplication.gui_rec.<init>(gui_rec.java:42)
at detectingApplication.gui_rec.main(gui_rec.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

&#39;导出带编译警告&#39;消息意味着您的一些代码无法完全编译。 Eclipse应该向您显示关于此的警告(除非警告已关闭)。

在Mac OS X上运行时,必须在java命令中指定 svg.data([thisData]).remove('line')选项,以确保SWT使用正确的线程。这将解决由于Cocoa限制而必须在主线程上创建显示的问题。错误。此错误与编译警告消息无关。

相关问题