/lib/ext存在,不再支持扩展机制

您所在的位置:网站首页 jdk17没有ext文件夹 /lib/ext存在,不再支持扩展机制

/lib/ext存在,不再支持扩展机制

2024-07-11 09:56| 来源: 网络整理| 查看: 265

使用-Djava.class.path=…而不是-classpath …指定类路径是不常见的,但与删除的扩展机制完全无关。正如错误消息所说,问题在于/lib/ext的存在。

演示问题(在本例中使用Windows )

代码语言:javascript复制E:\java>jdk-11.0.1\bin\java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode, sharing) E:\java>mkdir jdk-11.0.1\lib\ext E:\java>jdk-11.0.1\bin\java -version /lib/ext exists, extensions mechanism no longer supported; Use -classpath instead. .Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. E:\java>rmdir jdk-11.0.1\lib\ext E:\java>jdk-11.0.1\bin\java -version openjdk version "11.0.1" 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode, sharing)

纯Java安装没有ext文件夹,所以一定是安装程序创建了它,假设旧的扩展机制已经不存在了。由于在这种错误的假设下运行软件可能会导致更多、更难诊断的问题,Java供应商决定在该文件夹存在时立即无条件地摆脱困境。

因此,您必须删除该文件夹。如果不为空,则可能包含应用程序所需的jar文件。因此,您必须将它们移动到可以维护它们的新位置。然后,您必须将它们包含在类路径中。您使用的是-Djava.class.path=…还是-classpath …都无关紧要。

为了解决命令行选项语法的问题,可以使用不带任何=符号的-classpath path。根据用于启动新进程的API,如果不提供被外壳程序分解为参数的单个命令行字符串,则必须确保将其视为两个参数,-classpath,后跟实际路径。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3