2011-07-28 1 views
0

하이록, webstart 앱이 Mac에서 실행되지 않는 이유는 무엇입니까? (누락 vmarg)가

난 자체 리눅스를 실행하는 시험 프로그램 (우분투 10.04 LTS를)의 Javaws 통해 개시 될 애플리케이션을 개발, 윈도우 7 및 Mac OS. 로컬로 시작하면 swt를 사용하고 문제없이 모든 플랫폼에서 실행됩니다.

일부 응용 프로그램이 이제는 리눅스에서 시작되고 모든 아키텍처가 포함 된 Windows 시스템이 꽤 잘 작동합니다.

<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> 

이에서 논의 :

나는 그 자바-VM jnlp 파일은 다음 ressource 태그를 필요로하는 XstartOnFirstThread와의 Javaws와 동일 할 줄하는 맥 OS 하나가 필요합니다 아래에 SWT 응용 프로그램을 실행 알고 question macOS는 swt와 j2se="xy" 정의에 문제가있을 수 있으므로 특정 하나만 시도해보십시오 (글로벌 하나도 아님) 및 "일반"하나 (예 : j2se="1.5+"). 온 로컬로 실행되는 경우, 단지 자체가 아주 완벽하게 실행되고 있기 때문에

은 내가 (모두 및 시도 인터넷에서 "WS"부분없이이 인수를 발견) 인수 javaws-vm-args="-XstartOnFirstThread" 또는 java-vm-args="-XstartOnFirstThread"이의 Javaws에 의해 전달되지 않습니다 의심 맥.

실제 문제는 지금 argumemts의 모든 가능한 조합 응용 프로그램은 항상 다음과 같은 예외로 종료한다는 것입니다 :

  • OS : 여기

    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 10.6 (스노우 Leopard) 64 비트

  • Java Runntime 1.6 64 비트
  • SWT 버전 : 3.6.2-cocoa-macosx-x86_64

내가 사람이 가진 문제점과 같은

환호는 JNLP 파일이 유효하지

답변

1

stoppal, 모든 answeres에 대한 사전에 들으 문제를 해결할 수 있었다 바랍니다. JaNeLA &으로 확인하십시오. 결과가 빨간색이거나 다른 시스템에서 왜 실패했는지 궁금한 사항이 있으면 빨간색으로 수정하십시오.

+1

[JaNeLa] (http://pscode.org/janela/)로 팁을 보내 주셔서 감사 드리며 문제를 해결할 수 있었으며 지금은 세 가지 플랫폼 모두에서 아름답게 작동합니다. – Stoppal

2

그래서 거기 모두 같은 문제와 투쟁하거나이 참조로 작동하는 jnlp 파일을 원하는 여기 내 꺼야 :

<?xml version="1.0" encoding="UTF-8" ?> 
<jnlp spec="1.0+" codebase="http://your-host:8080/folder_with_jar_stuff/" href="webstart.jnlp"> 
    <information> 
    <title>Your Applications Title</title> 
    <vendor>Your name or company or whatever</vendor> 
    <homepage href="http://www.a-really-funny-domain.com" /> 
    <description>This application does something really usefull and will make the world a better place due to it being lorem ipsum...</description> 
    <icon kind="splash" href="splash.bmp"/> 
    </information> 

    <security> 
    <all-permissions /> 
    </security> 

    <resources> 
    <jar href="your_app_as_jar.jar" /> 
    </resources> 

    <resources os="Linux" arch="x86_64"> 
    <nativelib href="swt-native-3.6.2-gtk-linux-x86_64.jar" /> 
    </resources> 
    <resources os="Linux" arch="amd64"> 
    <nativelib href="swt-native-3.6.2-gtk-linux-x86_64.jar" /> 
    </resources> 
    <resources os="Linux"> 
    <nativelib href="swt-native-3.6.2-gtk-linux-x86.jar" /> 
    </resources> 

    <resources os="Mac" arch="x86_64"> 
    <j2se version="1.6" java-vm-args="-XstartOnFirstThread" /> 
    <nativelib href="swt-3.6.2-cocoa-macosx-x86_64.jar" /> 
    </resources> 

    <resources os="Windows" arch="x86"> 
    <nativelib href="swt-native-3.6.2-win32-x86.jar" /> 
    </resources> 
    <resources os="Windows" arch="x86_64"> 
    <nativelib href="swt-native-3.6.2-win32-x86_64.jar" /> 
    </resources> 
    <resources os="Windows" arch="amd64"> 
    <nativelib href="swt-native-3.6.2-win32-x86_64.jar" /> 
    </resources> 

    <resources> 
    <jar href="log4j-1.2.16.jar" /> 
    </resources> 

    <application-desc main-class="package.contains.class.with.main.method.ClassName" /> 

</jnlp> 

내가 여기까지 완료 있다는 사실을 알고,하지만 나를 위해 작동합니다. 다른 유용한 링크는 다음과 같습니다 : A JNLP tag refference list 믿거 나 말거나, oracle의 specification입니다.