it-swarm.com.de

Wie ersetzen Sie das indossierte Verzeichnis in Java 9?

In Java 8 und früher gibt es den Mechanismus zur Verwendung eines Endorsed-Verzeichnisses (Java.endorsed.dirs), einer Sammlung von Bibliotheken, die JDK-interne Implementierungen überschreibt.

Wie kann ich das in Java-9 lösen? Als befürwortete Verzeichnisse wurden dort entfernt?

13
keiki

In JDK 9 können Sie aktualisierbare Module verwenden oder die JAR-Dateien in den Klassenpfad einfügen.

Die Java 9-Migrationsanleitung besagt:

Das Java.endorsed.dirs Systemeigenschaft und die lib/endorsed Verzeichnis sind nicht mehr vorhanden. Der javac Compiler und der Java Launcher werden beendet, wenn einer der beiden gefunden wird.

Am Ende würden Sie den Fehler finden, wenn einer dieser Fehler wie folgt vorliegt:

<Java_HOME>/lib/endorsed is not supported. Endorsed standards and
standalone APIs in modular form will be supported via the concept of
upgradeable modules. Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Dieser Override-Mechanismus für indossierte Standards wurde entfernt, um Modular Run-Time Images zu erhalten, und würde nun das modulare Image verwenden.

Ein modulares Image besteht eher aus Modulen als aus JAR-Dateien. In Zukunft werden befürwortete Standards und eigenständige APIs nur in modularer Form über das Konzept aktualisierbare Module unterstützt.

12
Naman
I also faced same issue, Java versions higher than 8 are not supported by Tomcat 9.
please check bin/catalina.sh for more information.
#Java_ENDORSED_DIRS (Optional) Lists of of colon separated directories
#containing some jars in order to allow replacement of APIs
#created outside of the JCP (i.e. DOM and SAX from W3C).
#It can also be used to update the XML parser implementation.
#This is only supported for Java <= 8.
#Defaults to $CATALINA_HOME/endorsed.
0
Vamsi Veginati