Futtassa a Java osztályfüggőség-elemző eszközt (JDeps)

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.