海兰那里,为什么webstart应用程序无法在mac上启动? (缺少VMARG)
我开发的应用程序是通过javaws的将要开始,本身被测试以在linux上运行该应用程序(的ubuntu 10.04 LTS),窗口7和Mac OS。如果从本地启动,它将使用swt并在所有这些平台上运行而不会出现问题。
经过一番艰苦的努力,现在应用程序开始在所有体系结构的linux和windows计算机上,如果它不适合mac!
我知道,运行在MacOS一个需要一个SWT应用程序给了Java虚拟机的XstartOnFirstThread
和做同样与javaws的JNLP文件需要下面的ressource标签:
<resources os="Mac">
<j2se version="1.5+" javaws-vm-args="-XstartOnFirstThread" />
<nativelib href="swt-3.6.2-cocoa-macosx-x86_64.jar" />
<jar href="swt-3.6.2-cocoa-macosx-x86_64.jar" />
</resources>
在此讨论question macOS可能会遇到swt和j2se="xy"
定义的问题,所以我尝试使用特定的一个,根本没有(甚至不是全局的)和“通用”(例如:j2se="1.5+"
)。
我怀疑论点javaws-vm-args="-XstartOnFirstThread"
或java-vm-args="-XstartOnFirstThread"
(发现这种说法有和没有在互联网上的“WS”的一部分,并试图两者)不受javaws的传递,因为当在本地执行的罐子本身是相当完美运行苹果电脑。
现在的实际问题是,随着argumemts的每一个可能的组合应用程序总是与以下异常退出:
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.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.getDefault(Unknown Source)
at foo.bar.WebStartRunnable.<init>(WebStartRunnable.java:85)
at foo.bar.WebStartRunnable.main(WebStartRunnable.java:155)
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 com.sun.javaws.Launcher.executeApplication(Launcher.java:1909)
at com.sun.javaws.Launcher.executeMainClass(Launcher.java:1847)
at com.sun.javaws.Launcher.doLaunchApp(Launcher.java:1609)
at com.sun.javaws.Launcher.run(Launcher.java:138)
at java.lang.Thread.run(Thread.java:680)
这里是再次规格:
- OS:MacOS的10.6(雪豹)64位
- Java Runntime 1.6 64位
- SWT版本:3.6.2-cocoa-macosx-x86_64
我希望有人有同样的问题,并能解决它,THX提前对所有answeres,
欢呼stoppal
感谢与[JaNeLa](http://pscode.org/janela/)的提示,真的帮了很大忙,我能够解决这个问题,现在它在所有三个平台上都能很好地工作。 – Stoppal