2009-11-03 16 views
8

Debuguję aplikację jnlp, a ja zdążyłem zdalnie debugować ją przez zaćmienie, ale już nie.zdalne debugowanie aplikacji jnlp z zaćmieniem

polecenie, aby go uruchomić to:

/usr/java/jdk1.6.0_14/jre/bin/java -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1445 -Djnlpx.heapsize=64m,512m -DtrustProxy=true -Xverify:remote -Djava.security.policy=/lib/security/javaws.policy -Dfile.encoding=UTF-8 -Xbootclasspath/a:/usr/java/jdk1.6.0_14/jre/lib/deploy.jar:/usr/java/jdk1.6.0_14/jre/lib/javaws.jar:/usr/java/jdk1.6.0_14/jre/lib/plugin.jar -classpath /usr/java/jdk1.6.0_14/jre/lib/deploy.jar com.sun.javaws.Main launch.jnlp 
Listening for transport dt_socket at address: 1445 

i problem jest to, że kiedy dołączyć debugera Eclipse, to wyłącza się i uruchamia ponownie; więc debugger dołącza do pierwszego procesu; a kiedy to umrze, robi to debugger.

skrypt debuggera właściwie nie ma znaczenia; ponieważ proces jnlp uruchamia się samoczynnie, zanim debugger zostanie kiedykolwiek uruchomiony, jeśli suspend = n.

Próbowałem go śledzić, ale opcja -XX: TraceSupport = true (i inne warianty, które próbowałem) powoduje błąd jvm.

Używam Fedory 11, Eclipse Java EE IDE dla programistów. (Identyfikator kompilacji: 20090621-0832)

Pytam, czy ktoś wie, jak to naprawić, a przynajmniej jak włączyć lepsze rejestrowanie (np. Przechwytywać wszystkie dane wyjściowe konsoli do dziennika, aby można było pobrać spójrz na pierwszą konsolę, która błyska na moim ekranie przez milisekundę)

dzięki!

Odpowiedz

4

Mój szef znalazł odpowiedź:

Wydaje się, że “<property>” tagi w pliku jnlp są bardziej restrykcyjne z nowszą JRE. Według Sun documentation:

„Dla niezaufanych aplikacji systemowych Właściwości ustawione w pliku JNLP będzie być ustawione tylko przez Java Web Start gdyby są uważane za bezpieczne, lub jeśli nazwa nieruchomość zaczyna się od„JNLP . " lub „javaws.”.”

Wygląda niezaufane statusu powoduje wniosku o rozpoczęciu raz drugi z odpowiednimi właściwości.

po rekompilacji i mocowania nadzieją niepowiązanych problem gdzie nowe linie były przyczyną podpisaną APPLICATION.JNLP i launch.jnlp aby nie wydawać się „samo”, debugger teraz pracuje.

+1

Świetnie! Twój komentarz pomógł mi znaleźć mój własny problem. Wygląda na to, że JNLP jest pobierany lub analizowany dwukrotnie, w zależności od niezaufanego statusu. Po raz drugi używane są parametry ustawione w . Musiałem więc dodać wszystkie moje zapytania w HREF i nareszcie działa. Dzięki. – Kloe2378231

4

Ten blog post ma zmienne środowiskowe, które można ustawić do debugowania jnlp. To zawsze działa dla mnie.

set JAVAWS_TRACE_NATIVE=1 

    set JAVAWS_VM_ARGS=-Xdebug -Xnoagent -Djava.compiler=NONE 
      -Xrunjdwp:transport=dt_socket,address=8989,server=y,suspend=y 
    javaws http://server:port/descriptor.jnlp 
+0

Znalazłem już i wypróbowałem niektóre flagi; Będę kontynuował i powiadomię ludzi o wynikach; dzisiejszego ranka znalazłem ten post (http://forums.sun.com/thread.jspa?threadID=569693) i będę go wyłączał. –

+0

Również znalazłem ten post: http://stackoverflow.com/questions/686061/how-can-i-debug-applications-under-java-web-start-jnlp –

Powiązane problemy