javaws.exe passzív rezisztenciába vonul.

Mondjuk van egy ilyen, hogy javaws.exe https://ott.van/valami.jnlp, hibaüzenettel nem fárad, esetleg átmenetileg látszik valami splash image, aztán becsukódik.

Vannak olyan kezdeti lépések, miszerint az SSL-cert-et meg a kódaláíró cert-et bele kell gyömöszölni a %JAVA_HOME%/jre/lib/security/cacerts-be, meg esetleg a Java Control Panel-ben (egyszerűbben mondva javacpl.exe) kell állítgatni mindenféle jóságokat.

Most inkább olyasmit vélek látni, hogy így elindul:

c:\progra~1\java\jre1.8.0_211\bin\javaws.exe https://ott.van/valami.jnlp

így meg nem:

c:\jre8_64\bin\javaws.exe https://ott.van/valami.jnlp

ahol a c:\jre8_64 egy szimlink:

2021. 09. 06.  17:38         jre8_64 [c:\Progra~1\Java\jre1.8.0_211]

Hozzászólások

Szerkesztve: 2021. 09. 07., k – 19:44

Van például egy ilyen könyvtár: %USERPROFILE%\AppData\LocalLow\Sun\Java\Deployment\log, itt helyes kis .log és .trace fájlok keletkeznek. De csak akkor, amikor elindul, amikor nem indul el, akkor fájlok sem keletkeznek.

Valamint futtathatnám az strace(1) nevű programot. Ha nem Wintendó lenne. Itt drmemory/drstrace van, nem egészen ugyanaz az élmény. (Ebben persze az is közrejátszik, hogy a követett hívások 97 százaléka registry-lekérdezés.)

Szerkesztve: 2021. 09. 07., k – 21:25

A jó hír az, hogy a javaws és a javaw között még egy jp2launcher nevű program is van, ami azért jó, mert köztudott, hogy minél több komponensből áll egy rendszer, annál gyorsabb és stabilabb.

Szerkesztve: 2021. 09. 08., sze – 18:45

Még az is egy érdekes kérdés lehet, hogy mi a realpath(3) Windows-os megfelelője... egyesek szerint a GetFullPathName ilyet is csinál, ki kellene próbálni.

Szerk: vagy rosszul néztem, vagy nem csinál ilyet.

Szerk: Viszont van egy _fullpath! Na az sem csinál ilyet. Következő jelölt: GetFinalPathNameByHandle

Szerk: jónak látszik:

c:\bin\realpath \java8ad c:\jre8_64\bin
\\?\C:\Program Files\AdoptOpenJDK\jdk-8.0.292.10-hotspot
\\?\C:\Program Files\Java\jre1.8.0_211\bin

Ezzel ilyesmi cmd-fájlt alkothatunk:

@echo off
setlocal
c:\bin\realpath c:\jre8_64 >%TEMP%\path.tmp
set /P JAVA_HOME= <%TEMP%\path.tmp
set PATH=%JAVA_HOME%\bin;%PATH%
"%JAVA_HOME%\bin\javaws.exe" %*

Hasonló téma:
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8151915

Vagyis nem szereti a szimlinkeket (Mklink /D)


c:\java8\bin\java -cp c:\temp Path_test c:\java8 c:\java7\bin c:\progra~1\java
c:\java8                         -> *** realpath("c:\java8"): java.lang.InternalError: Should not get here
c:\java7\bin                     -> *** realpath("c:\java7\bin"): java.lang.InternalError: Should not get here
c:\progra~1\java                 -> C:\Program Files\Java

Az "Adopt" változat (8.0.292.10-hotspot) valahogy megbirkozik ezzel is:


c:\java8ad\bin\java -cp c:\temp Path_test c:\java8 c:\java7\bin c:\progra~1\java
c:\java8                         -> C:\Program Files\Java\jdk1.8.0_221
c:\java7\bin                     -> C:\Program Files\Java\jdk1.7.0_65\bin
c:\progra~1\java                 -> C:\Program Files\Java

Kieg: Persze ne felejtsük el, hogy kétféleképpen lehet szimlinket csinálni (csak?!), nevezetesen mklink /J és mklink /D által. Ami közös bennük, az az, hogy az Oracle Java egyikkel sem bír.

probald meg RH openjdk windows msi installerrel feltett java-val is (abban van icedtea-web, ami egy open source reimplementacioja az Oracle fele proprietary Java Web Start-janak). Az icedtea talan jobban logol...

A szimlink meg siman elbaltazhat nagyon sok mindent (pl classpath is, mert nem talalja a jre/lib/*.jar-okat), nem biztos, hogy az Ora fele implementacio fel lett keszitve szimlinkre... Ezt persze maximum decompilerrel lehetne kideriteni, bar asszem az oracle jo szokasahoz hiven levagta a debug szimbolokat (talan meg obfuszkalt is, mint a jdbc drivereben), szoval good luck....... IcedTea-web-nek megvan a forrasa githubon, es sztem jobban is logol.

Most hogy így mondod, valóban, az AdoptOpenJDK8 is megvan a gépemen, és azzal működik (de ha nem működne, akkor is hányja a debug-logot a konzolra, tehát lenne miből nyomozni), szóval lehet, hogy ezt most nem is erőltetem tovább a javaws/javacpl irányt, inkább kitesztelem, hogy minden megy-e ezzel az IcedTea-val.