Tomcat8启动报错:Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED
特不靠谱 2025-02-17 19:58:59 864人已围观
最近手贱,升级了JDK,从原来的JDK8升级到11后发现tomcat8无法启动,报错如下所示:
Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED
一想什么都没改,只是升级了一个JDK,肯定跟JDK有关。仔细一检查,发现一堆问题:
1、没有JRE
1.1、为啥没有JRE?
因为新版本的JDK(如JDK 11及以上)在安装后可能默认不包含JRE目录。这是因为从JDK 9开始,Java平台模块系统(JPMS)被引入,允许开发者根据需要创建最小化的运行时环境。因此,在安装这些版本的JDK时,JRE可能不是默认安装的组件。
1.2、 检查JRE是否已单独安装
在某些情况下,JRE可能已经作为其他软件的一部分被安装,或者你可能已经手动安装了JRE。你可以检查系统的安装目录或使用系统环境变量来确认JRE是否存在。通常,JRE会安装在与JDK相似的目录下,或者可能位于系统的某个公共位置,如C:\Program Files\Java\。
或者在JDK安装目录下,通常会有一个名为jre的文件夹(在旧版本的JDK中)。但在新版本中,这个文件夹可能不存在。你可以浏览JDK的安装目录来确认这一点。
4. 若不存在,使用命令生成JRE目录
如果JDK安装目录下没有JRE文件夹,你可以使用JDK自带的jlink工具来创建一个自定义的JRE。以下是具体的步骤和命令:
以管理员身份运行cmd:确保你有足够的权限来执行后续的操作。
导航到JDK安装目录:使用
cd命令进入你的JDK安装目录。执行
jlink命令:使用以下命令来创建一个包含基本模块的JRE:
bashCopy Codebin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
这条命令会从jmods目录中提取必要的模块,并创建一个名为jre的输出目录,其中包含了运行Java应用程序所需的最小运行时环境。
5. 验证JRE目录是否成功生成并可用
检查输出目录:确认在你的JDK安装目录下生成了一个名为
jre的文件夹。测试JRE:你可以尝试在命令行中设置
JAVA_HOME环境变量指向你的JDK安装目录,并将PATH环境变量更新为包含新生成的JRE的bin目录。然后,你可以运行一个简单的Java程序来验证JRE是否工作正常。
例如,你可以创建一个名为Test.java的简单Java文件,内容如下:
javaCopy Codepublic class Test { public static void main(String[] args) {
System.out.println("Hello, JRE!");
}
}编译并运行它:
bashCopy Codejavac Test.java jre\bin\java Test
如果一切正常,你应该会看到输出Hello, JRE!。
综上所述,如果JDK安装后没有JRE目录,你可以通过检查JDK版本、确认是否已单独安装JRE、查找JDK安装目录下的JRE文件夹(如果适用),以及使用jlink命令生成一个自定义的JRE来解决这个问题。
2、如何下载JRE?
3、如何安装?
参考资料:
1、利用tomcat运行jsp文件时,出现错误Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED Error

备付金存管银行是指可以为支付机构办理客户备付金的跨行收付业务,并负责对支付机构存放在所有备付金银行的客户备付金信息进行归集、核对与监督的备付金银行。(支付机构客
最近有一套生产系统的数据库CPU老是偏高,发现闲时也在40%-60%左右,感觉很不正常,决定优化一下,在这
首先需要知道什么叫一元购? 就是你支付一元后获得一个购物资格,有的叫抽