A Java 8 változattól kezdve, a JDK szállít egy jdeps (Java
osztályfüggőség-elemző) nevű parancssori segédprogramot.
A jdeps parancs elemzi az osztályfüggőségeket, és további
paramétereket biztosít belső Java csomagok megjelöléséhez.
Míg a WebSphere
átállítási eszköz megjelöli az alkalmazásokban talált átállítási problémák
többségét, a jdeps eszköz az új Java változatra való áttérés
után már nem elérhető belső JDK csomagokhoz biztosíthat további észlelést.
Javasoljuk, hogy a jdeps parancsot a bináris vagy forrás
WebSphere átállítási eszközök által megjelölt problémák megoldása után
futtassa egy végső lépésként. Futtassa a jdeps parancsot az
alkalmazás Java műtermékein.
A pontos eredmények biztosítása érdekében használja a tervezett cél JDK telepítésben (például JDK 11) elérhető
jdeps parancsot a -jdkinternals paraméterrel. Például miután beállította a környezetet Java 11 használatára, futtassa a
következő parancsot:
| jdeps -jdkinternals C:\demo\Apps\myapplication.jar |
A Java 9 változatától kezdődően törekvés tapasztalható a legtöbb JDK belső elem hozzáférésének korlátozására. Az áttérés
támogatása érdekében azonban ez az erős beágyazás a Java 8 változatban már létező API-k esetében alapértelmezésben ki volt kapcsolva. A Java 16
változatától kezdődően az --illegel-access indítási paraméter alapértelmezett értékének beállítása permit
helyett deny. Bár nem ajánlott, ez a korlátozás a Java 16 változatában az --illegal-access=permit
megadásával kerülhető meg.
Az --illegal-access warn vagy debug értékre is beállítható volt,
aminek a hatása megegyezik a permit értékével, de a warn használata
esetén figyelmeztető üzenet jelent meg, a debug használatakor pedig előállításra került
az illegális reflexiós hozzáférési műveletek verem nyomkövetése.
A Java 17 vagy újabb változatra való áttéréskor az -- illegal-access indítási paraméter elavult.
A legtöbb JDK belső elem most erősen van beágyazva. Habár nem ajánlott, ez a korlátozás megkerülhető az --add-opens
indítási paraméter vagy az Add-Opens JAR leírófájl attribútum segítségével az alkalmazás vagy harmadik
féltől származó könyvtárak által igényelt csomagok megnyitásakor.
Ez a változás bizonyos kritikus belső alkalmazásprogramozási felületeket nem foglal magában; ezek a következők:
A segédprogram előállítja a kimenetet, amely azonosítja a JDK belső
osztályokra mutató hivatkozásokat, és ahol lehetséges, biztosít javasolt
csere API-kat.
Megjegyzés: a jdeps parancs csak .class fájlokat, egy könyvtárat vagy egy JAR fájlt fogad el.
A jdeps paranccsal kapcsolatos további információkért tekintse meg
a jdeps referencia oldalt.