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. A migrációval kapcsolatos támogatás azonban ezt az erős beágyazást a Java 8-ban létező API-k esetében alapértelmezésben kikapcsolta. A Java 16 változattól kezdődően az -- illegális-access launcher beállítás a megtagadásra van helyetthelyett. Although not recommended, this limitation could be bypassed in Java 16 by specifying -- illegális-access=engedély. -- illegális hozzáférés could also be set to Figyelmeztet or Hibakeresés to have the same effect as Engedély, but to issue a warning message while using Figyelmeztet and stack trace for illegal reflective-access operations while using Hibakeresés.

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.