如何在Java9中替换已认可的目录?

如何在Java9中替换已认可的目录?,java,java-9,endorsed,Java,Java 9,Endorsed,在Java8和更早版本中,存在使用认可目录(Java.annowned.dirs)的机制,该目录是覆盖JDK内部实现的库集合 我如何用Java-9解决这个问题?作为JDK 9中删除的已背书的目录,您可以使用JAR文件或将其放在类路径上。 各国: java.annowed.dirs系统属性和lib/annowed 目录已不存在。javac编译器和java 如果检测到任何一个,启动器将退出 如果存在以下任何一种情况,您最终会发现错误: 不支持/lib/annowed。认可的标准及 模块化形式的独立A

在Java8和更早版本中,存在使用认可目录(Java.annowned.dirs)的机制,该目录是覆盖JDK内部实现的库集合


我如何用Java-9解决这个问题?作为JDK 9中删除的已背书的目录,您可以使用JAR文件或将其放在类路径上。

各国:

java.annowed.dirs
系统属性和
lib/annowed
目录已不存在。
javac
编译器和
java
如果检测到任何一个,启动器将退出

如果存在以下任何一种情况,您最终会发现错误:

不支持
/lib/annowed。认可的标准及
模块化形式的独立API将通过
可升级模块。错误:无法创建Java虚拟机。
错误:发生致命异常。程序将退出。

这些认可的标准覆盖机制被移除以实现,现在将使用模块化映像

模块化映像由模块而不是JAR文件组成。去 中支持转发、认可的标准和独立API 仅模块化形式,通过概念


我也面临同样的问题,Tomcat9不支持高于8的Java版本。 有关更多信息,请查看bin/catalina.sh

JAVA_背书的_目录(可选)冒号分隔目录列表 包含一些JAR以允许替换API 在JCP之外创建(即来自W3C的DOM和SAX)。 它还可以用于更新XML解析器实现。
这只支持Java这是一个特定的解决方案,但可能是通用的。系统版本:macOS 10.14.6(18G3020)内核版本:Darwin 18.7.0我安装了OpenJDK 64位服务器VM(构建13.0.2+8,混合模式,共享)和java_ee_sdk-8u1

我在执行xjc时遇到此错误:

[foo@bar bin 14:47:27] sudo ./xjc
-Djava.endorsed.dirs=./../modules/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.enter code here
我编辑了
~/glassfish 5/glassfish/bin/xjc
中的最后一行,以删除
-Djava.annowed.dirs
位: 以前

之后


之后,
~/glassfish/5/glassfish/bin/xjc
按预期工作

“Tomcat 9不支持高于8的Java版本”这是不正确的。Java8之后不支持的是开关
-Djava.approved.dirs=…
。不是Tomcat不支持Java9和更高版本。@IsanRodriguezTrimiño哈哈哈!!我也是!!哈哈哈,我也是,Java现在开始Brrrrr了。你不需要,你用模块代替。由于几个原因,模块修复了背书和类路径的问题。
[foo@bar bin 14:47:27] sudo ./xjc
-Djava.endorsed.dirs=./../modules/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.enter code here
exec "$JAVA" -Djava.endorsed.dirs="$AS_INSTALL_LIB/endorsed" -cp "$AS_INSTALL_LIB/webservices-osgi.jar:$AS_INSTALL_LIB/javax.xml.rpc-api.jar:$AS_INSTALL_LIB/jaxb-osgi.jar" com.sun.tools.xjc.Driver "$@"
exec "$JAVA" -cp "$AS_INSTALL_LIB/webservices-osgi.jar:$AS_INSTALL_LIB/javax.xml.rpc-api.jar:$AS_INSTALL_LIB/jaxb-osgi.jar" com.sun.tools.xjc.Driver "$@"