Dans Java 8 et versions antérieures, il existe un mécanisme permettant d’utiliser un répertoire approuvé (Java.endorsed.dirs), qui est une collection de bibliothèques remplaçant les implémentations internes du JDK.
Comment puis-je résoudre ce problème dans Java-9? Comme approuvé end où ont été enlevés là?
Dans JDK 9, vous pouvez utiliser modules pouvant être mis à niveau ou placer les fichiers JAR sur le chemin d'accès aux classes.
Le Guide de migration Java 9 indique:
La propriété système
Java.endorsed.dirs
et lelib/endorsed
répertoire ne sont plus présents. Le compilateurjavac
etJava
le lanceur se fermera si l'un ou l'autre est détecté.
Vous finirez par trouver l'erreur si l'un d'entre eux existe sous la forme:
<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.
Ce mécanisme de substitution aux normes approuvées a été supprimé pour atteindre images d'exécution modulaires et utiliserait maintenant l'image modulaire.
Une image modulaire est composée de modules plutôt que de fichiers JAR. Aller Les normes avancées et approuvées, ainsi que les API autonomes, sont pris en charge dans forme modulaire uniquement, via le concept de modules évolutifs .
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.