swt能单独在linux运行么,java – 在Mac上运行基于SWT的跨平台jar

我一直在开发一个基于SWT的项目,该项目旨在部署为Java Web Start,从而在多个平台上使用。

到目前为止,我已经设法解决了SWT所依赖的特定于系统的图书馆出现的出口问题(见相关的thread)。在32位/ 64位的linux和64位窗口上,最终的jar似乎工作起来很好,但在Mac上执行失败,并显示如下输出:

$ java -jar dist/test.jar

Adding { file:/Volumes/LaCie/ChiBE_Local/swt/swt-cocoa-macosx-x86_64-3.6.1.jar } to the classpath

***WARNING: Display must be created on main thread due to Cocoa restrictions.

Exception in thread "main" java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

Caused by: java.lang.ExceptionInInitializerError

at org.eclipse.gef.tools.MarqueeSelectionTool.(MarqueeSelectionTool.java:99)

at org.gvt.MarqueeZoomTool.(MarqueeZoomTool.java:16)

at org.gvt.action.MarqueeZoomToolAction$1.(MarqueeZoomToolAction.java:28)

at org.gvt.action.MarqueeZoomToolAction.createTool(MarqueeZoomToolAction.java:28)

at org.gvt.action.AbstractGEFToolAction.(AbstractGEFToolAction.java:24)

at org.gvt.action.MarqueeZoomToolAction.(MarqueeZoomToolAction.java:20)

at org.gvt.TopMenuBar.createBarMenu(TopMenuBar.java:113)

at org.gvt.ChisioMain.createMenuManager(ChisioMain.java:617)

at org.eclipse.jface.window.ApplicationWindow.addMenuBar(ApplicationWindow.java:235)

at org.gvt.ChisioMain.main(ChisioMain.java:149)

at org.gvt.RuntimeMain.main(RuntimeMain.java:14)

... 5 more

Caused by: org.eclipse.swt.SWTException: Invalid thread access

at org.eclipse.swt.SWT.error(Unknown Source)

at org.eclipse.swt.SWT.error(Unknown Source)

at org.eclipse.swt.SWT.error(Unknown Source)

at org.eclipse.swt.widgets.Display.error(Unknown Source)

at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)

at org.eclipse.swt.widgets.Display.create(Unknown Source)

at org.eclipse.swt.graphics.Device.(Unknown Source)

at org.eclipse.swt.widgets.Display.(Unknown Source)

at org.eclipse.swt.widgets.Display.(Unknown Source)

at org.eclipse.swt.widgets.Display.getDefault(Unknown Source)

at org.eclipse.swt.widgets.Display$1.run(Unknown Source)

at org.eclipse.swt.graphics.Device.getDevice(Unknown Source)

at org.eclipse.swt.graphics.Resource.(Unknown Source)

at org.eclipse.swt.graphics.Cursor.(Unknown Source)

at org.eclipse.draw2d.Cursors.(Cursors.java:170)

... 16 more

这是我的理解,问题源于Mac OSX上的线程处理,我应该尝试在执行时实现Jst参数-XstartOnFirstThread。这是正确的吗?

假设我对问题的理解是准确的,我有点困惑,因为这个软件是为了跨平台运行在javaws上。我需要创建一个info.plist文件,如果是这样,在包中如何,否则如何“有条件地”在执行时将该参数传递给JVM?

提前致谢,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值