我需要 JRE_HOME 吗? Tomcat java 环境版本差异

Do I need JRE_HOME? Tomcat java environment version difference

最近我在 tomcat 中 运行 一个基本的 webapp 时遇到了一个错误。 错误是 "class has been compiled by a more recent version of the Java Environment"。我正在使用 jdk-11.0.2 和 jre1.8.0_201。然后我遇到了关于设置 tomcat 服务器的 this 页面,上面写着:

If both JRE_HOME and JAVA_HOME are specified, JRE_HOME is used

所以我尝试删除 JRE_HOME 变量并解决了错误。 这是解决问题的正确方法吗?是否可以单独为 tomcat 设置 JRE_HOME invisible?我在其他任何地方都需要 JRE_HOME 吗?

So I tried deleting the JRE_HOME variable and that solved the error. Is this the right method to solve the issue?

是的。根据您的信息,您的网络应用需要 Java 版本 >8 到 运行。而你在这里所做的是确保 Tomcat 正在使用 Java 11 到 运行 这是解决问题的正确方向。

另外,只设置JAVA_HOME不设置JRE_HOME是很正常的,因为如果不设置JRE_HOME,后台启动脚本Tomcat (setclasspath.bat) 将根据JAVA_HOME 值自动为您设置JRE_HOME

您还可以通过在 bin 文件夹中创建 setenv.sh 来自定义/覆盖 JRE_HOMEJAVA_HOMEsetenv.sh 中的所有设置仅适用于 Tomcat :

export JAVA_HOME=/path/to/jdk-11.0.2