目录
(问题定点突破,终将有所获)
错误重现:
错误一:Java Runtime版本不够
#但是我使用jdk11,jdk16,都提示jre不满足(要升级版本):
#Exception in thread "main" java.lang.UnsupportedClassVersionError: org/owasp/webgoat/StartWebGoat has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 52.0
错误二:生成JRE失败
#在JDK11以后的版本中生成JRE失败
#错误: C:\Program Files\Java\jdk-11.0.2\jre
#并且从报错中无法得到很有效的信息
原因分析:
分析一:
#结合我自己的经验和百度发现
#在之前的 jdk1.8 版本乃至以下压缩包下载解压后直接运行会生成 jdk、jre 两个目录文件
#Java11 之后,只有 jdk 目录文件生成,没有 jre 目录文件,这时我们可以通过命令行方式手动生成 jre。
#jdk11的目录里,可以看到目录里也没有生成 jre 目录
#查看版本java -version
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)Java(TM)SE运行时环境18.9(构建11.0.2 + 9-LTS)
Java Hotspot(TM)64位服务器VM 18.9(构建11.0.2 + 9-LT,混合模式)
分析二:
#错误: C:\Program Files\Java\jdk-11.0.2\jre
#其实这是因为打开的cmd并以管理员身份打开
#其实是权限不够的问题
#cmd!=管理员命令提示符
#(虽然有时候叫错)
问题解决:
第一步:管理员终端
#打开命令提示符(管理员身份)
第二步:进入文件
#进入到C:\Program Files\Java\jdk-11.0.2目录里面
cd C:\Program Files\Java\jdk-11.0.2
第三步:生成
#开始生成JRE
bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre
#可以看见已经生成了JRE了