海蘭那裏,爲什麼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