2012-12-13 1 views
9

SWT 라이브러리를 사용하는 webstart를 통해 실행되는 응용 프로그램이 있습니다.Java 7은 Web Start를 사용하여 OS X에서 SWT 응용 프로그램을 중단합니다.

잘 OSX는 메인 스레드에서 실행되도록 SWT 라이브러리를 필요로 알려진, 그래서 우리는 우리의 JNLP이있는 것 :

<resources os="Mac"> 
    <j2se version="1.6+" java-vm-args="-XstartOnFirstThread"/> 
    <jar href="swt-mac64.jar"/> 
</resources> 

우리는 자바 7 (1.7.0_10)으로 업그레이드 한 이후, 그것을 webstart가 시작하는 Java 프로세스에 "-XstartOnFirstThread"를 전달하지 않는 것으로 보입니다.

'ps'에서 자바 프로세스가 "-XstartOnFirstThread"옵션을 얻지 못하고 있음을 알 수 있습니다.

누구든지 webstart가 이전 동작으로 돌아가는 방법을 알고 있습니까?

감사합니다. Gord. 또 다른 사람으로부터이 게시물을 기반으로 자바 7 버그 만약 내가 자바 7 경이와도이를 보게되었습니다

Java Web Start 10.10.2.18 
Using JRE version 1.7.0_10-b18 Java HotSpot(TM) 64-Bit Server VM 
User home directory = /Users/shier 
---------------------------------------------------- 
c: clear console window 
f: finalize objects on finalization queue 
g: garbage collect 
h: display this help message 
m: print memory usage 
o: trigger logging 
p: reload proxy configuration 
q: hide console 
r: reload policy configuration 
s: dump system and deployment properties 
t: dump thread list 
v: dump thread stack 
0-5: set trace level to <n> 
---------------------------------------------------- 
    Match: beginTraversal 
Match: digest selected JREDesc: JREDesc[version 1.6+, heap=-1--1, args=-XstartOnFirstThread, href=null, sel=false, null, null], JREInfo: JREInfo for index 0: 
    platform is: 1.7 
    product is: 1.7.0_10 
    location is: http://java.sun.com/products/autodl/j2se 
    path is: /Library/Internet Plug-ins/JavaAppletPlugin.plugin/Contents/Home/bin/java 
    args is: null 
    native platform is: Mac OS X, x86_64 [ x86_64, 64bit ] 
    JavaFX runtime is: JavaFX 2.2.4 found at /Library/Internet Plug-ins/JavaAppletPlugin.plugin/Contents/Home/ 
    enabled is: true 
    registered is: true 
    system is: true 

    Match: ignoring maxHeap: -1 
    Match: ignoring InitHeap: -1 
    Match: digesting vmargs: -XstartOnFirstThread 
    Match: digested vmargs: [JVMParameters: isSecure: false, args: -XstartOnFirstThread] 
    Match: JVM args after accumulation: [JVMParameters: isSecure: false, args: -XstartOnFirstThread] 
    Match: digest LaunchDesc: http://htxuat.example.com/broker/broker-XX.jnlp 
    Match: digest properties: [] 
    Match: JVM args: [JVMParameters: isSecure: false, args: -XstartOnFirstThread] 
    Match: endTraversal .. 
    Match: JVM args final: -XstartOnFirstThread 
    Match: Running JREInfo Version match: 1.7.0.10 == 1.7.0.10 
    Match: Running JVM args match the secure subset: have:<"-Djnlp.application.href=\"http://htxuat.example.com/broker/broker-XX.jnlp \""> satisfy want:<-XstartOnFirstThread> 
Dec 13, 2012 10:19:49 AM com.example.log.JavaUtilLogger infoImpl 
INFO: Available host [tcp:htxuat.example.com:49200] 
Dec 13, 2012 10:19:49 AM com.example.log.JavaUtilLogger infoImpl 
INFO: Available host [ssl:htxuat.example.com:49301] 
Dec 13, 2012 10:19:49 AM com.example.log.JavaUtilLogger infoImpl 
INFO: Will try the first address [tcp:htxuat.example.com:49200] 
Dec 13, 2012 10:19:49 AM com.example.log.JavaUtilLogger infoImpl 
INFO: Using host [tcp:htxuat.example.com:49200] 
Dec 13, 2012 10:19:49 AM com.example.log.JavaUtilLogger infoImpl 
INFO: Don't forget to change back the logging, this is only temporary 
Dec 13, 2012 10:19:49 AM com.example.log.JavaUtilLogger infoImpl 
INFO: Using library /Users/shier/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:. 
Dec 13, 2012 10:19:49 AM com.example.log.JavaUtilLogger infoImpl 
INFO: Registering [com.example.client.ClientController] 
JNLPClassLoader: Finding library libswt-cocoa-3738.dylib 
JNLPClassLoader: Finding library libswt-cocoa.dylib 
JNLPClassLoader: Finding library libswt-pi-cocoa-3738.dylib 
JNLPClassLoader: Finding library libswt-pi-cocoa.dylib 
***WARNING: Display must be created on main thread due to Cocoa restrictions. 
Dec 13, 2012 10:19:50 AM com.example.log.JavaUtilLogger errorImpl 
SEVERE: Problem 
org.eclipse.swt.SWTException: Invalid thread access 
    at org.eclipse.swt.SWT.error(SWT.java:4282) 
    at org.eclipse.swt.SWT.error(SWT.java:4197) 
    at org.eclipse.swt.SWT.error(SWT.java:4168) 
    at org.eclipse.swt.widgets.Display.error(Display.java:1065) 
    at org.eclipse.swt.widgets.Display.createDisplay(Display.java:822) 
    at org.eclipse.swt.widgets.Display.create(Display.java:805) 
    at org.eclipse.swt.graphics.Device.<init>(Device.java:130) 
    at org.eclipse.swt.widgets.Display.<init>(Display.java:696) 
    at org.eclipse.swt.widgets.Display.<init>(Display.java:687) 
    at org.eclipse.swt.widgets.Display.getDefault(Display.java:1383) 
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:270) 
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:263) 
    at com.example.swt.ShellViewParent.attach(ShellViewParent.java:124) 
    at com.example.swt.MultipleParents.init(MultipleParents.java:55) 
    at com.example.client.mvc.ViewController.setViewParents(ViewController.java:320) 
    at com.example.client.mvc.ViewController.setViewParents(ViewController.java:287) 
    at com.example.client.mvc.ViewController.setViewParents(ViewController.java:278) 
    at com.example.client.gui.prefs.PreferencesViewController.<init>(PreferencesViewController.java:53) 
    at com.example.client.ClientController.init(ClientController.java:353) 
    at com.example.mvc.Controller.register(Controller.java:51) 
    at com.example.client.Application.loadComponents(Application.java:153) 
    at com.example.client.Application.start(Application.java:139) 
    at com.example.client.Application.main(Application.java:166) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at com.sun.javaws.Launcher.executeApplication(Unknown Source) 
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source) 
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) 
    at com.sun.javaws.Launcher.run(Unknown Source) 
    at java.lang.Thread.run(Thread.java:722) 

org.eclipse.swt.SWTException: Invalid thread access 
    at org.eclipse.swt.SWT.error(SWT.java:4282) 
    at org.eclipse.swt.SWT.error(SWT.java:4197) 
    at org.eclipse.swt.SWT.error(SWT.java:4168) 
    at org.eclipse.swt.widgets.Display.error(Display.java:1065) 
    at org.eclipse.swt.widgets.Display.createDisplay(Display.java:822) 
    at org.eclipse.swt.widgets.Display.create(Display.java:805) 
    at org.eclipse.swt.graphics.Device.<init>(Device.java:130) 
    at org.eclipse.swt.widgets.Display.<init>(Display.java:696) 
    at org.eclipse.swt.widgets.Display.<init>(Display.java:687) 
    at org.eclipse.swt.widgets.Display.getDefault(Display.java:1383) 
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:270) 
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:263) 
    at com.example.swt.ShellViewParent.attach(ShellViewParent.java:124) 
    at com.example.swt.MultipleParents.init(MultipleParents.java:55) 
    at com.example.client.mvc.ViewController.setViewParents(ViewController.java:320) 
    at com.example.client.mvc.ViewController.setViewParents(ViewController.java:287) 
    at com.example.client.mvc.ViewController.setViewParents(ViewController.java:278) 
    at com.example.client.gui.prefs.PreferencesViewController.<init>(PreferencesViewController.java:53) 
    at com.example.client.ClientController.init(ClientController.java:353) 
    at com.example.mvc.Controller.register(Controller.java:51) 
    at com.example.client.Application.loadComponents(Application.java:153) 
    at com.example.client.Application.start(Application.java:139) 
    at com.example.client.Application.main(Application.java:166) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at com.sun.javaws.Launcher.executeApplication(Unknown Source) 
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source) 
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) 
    at com.sun.javaws.Launcher.run(Unknown Source) 
    at java.lang.Thread.run(Thread.java:722) 
+0

나는 Apple이 -XstartOnFirstThread 옵션을 허용하도록 java/javaws 버전을 수정하는 데 사용했다고 생각합니다. 필자는 오라클이 Mac에서 Java의 배포를 인수 한 이후 추가 단계를 수행하지 않는다고 생각합니다. –

+0

JNLP가'all-permissions'를 선언합니까? 나는 요청이 그렇지 않으면 무시 될 것이라고 확신한다. [JaNeLA] (http://pscode.org/janela/)를 사용하여 JNLP를 확인하십시오. –

답변

1

(내가 나서서 :

은 Webstart를 로그를 보여줍니다 것입니다 Java 버그 데이터베이스를 검색 할 때부터 아무 것도 보지 않았기 때문에 버그 보고서를 제출했습니다.) : http://www.java.net/forum/topic/jdk/java-se/webstart-os-x-xstartonfirstthread

해결 방법은 Apple에서 제공 한 Java 6의 javaw를 사용하는 것입니다. 명령 줄에서 : /System/Library/Java/Support/Deploy.bundle/Contents/MacOS/javaws myjnlp.jnlp