【问题标题】:How to change Java version used by TOMCAT?如何更改 TOMCAT 使用的 Java 版本?
【发布时间】:2019-03-23 19:32:03
【问题描述】:

我的系统上安装了 Java 1.6 和 Tomcat 5.5。

但是 Tomcat 5.5 访问 Java 1.5,因此结果我在使用 JSP 执行 java 代码时收到错误 Bad version number in .class file

如何将 Tomcat 版本更改为 Java 1.6?

更新

我尝试更改 tomcat5w.exe 指向版本 1.6 的 JVM,现在我摆脱了 Bad version in .class file 错误。但是现在,我收到以下错误。

exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:498)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

root cause

java.lang.NullPointerException
myfirst.SearchLink.checkURL(SearchLink.java:20)
org.apache.jsp.Test_jsp._jspService(Test_jsp.java:52)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)

可能的根本原因是什么?

【问题讨论】:

  • 您的异常现在完全不同了。这是一个新问题。 (但在那之前做一些搜索;))
  • 我已经纠正了这个问题...非常感谢您对博卓的支持..真诚的感谢
  • 检查 Tomcat 教程:tomcat.apache.org/tomcat-8.5-doc/windows-service-howto.html,例如tomcat7 //US/Tomcat7 --JavaHome D:\Java8

标签: java jsp tomcat tomcat5.5 java-home


【解决方案1】:

打开catalina.sh/catalina.bat,可以看到:

环境变量先决条件

JAVA_HOME 必须指向您的 Java Development Kit 安装。

因此,请将您的环境变量 JAVA_HOME 设置为指向 Java 6。还要确保 JRE_HOME 指向同一个目标(如果已设置)。

更新:由于您使用的是 Windows,see here 了解如何管理您的环境变量

【讨论】:

  • 我在我的 Tomact 5.5 文件夹中找不到这两个文件 catalina.sh / catalina.bat
  • 他们在/bin。但这不是重点。您必须设置 environment 变量。不要触摸 catalina 文件。
  • 您的意思是从这里更改 JVM C:\Program Files\Java\jre1.5.0_04\bin\client\jvm.dll
  • JAVA_HOME 仅指向 1.6 版。但是当我在我的 jsp 代码中使用代码 out.println("Java Version = "+ System.getProperty("java.version")); 时,我得到的版本为 1.5.0_04
  • 运行 startup.bat 的输出是什么?应该有 4 行显示不同的 _HOME 变量。
【解决方案2】:

在 Eclipse 中,很容易将 Tomcat 指向一个新的 JVM(在本例中为 JRE6)。我的问题是我找不到在哪里做。这是诀窍:

  1. 在 ECLIPSE 顶部菜单 FILE 下拉选项卡中,选择 NEW,-->Other
  2. ...在新建服务器:选择向导窗口中,选择:服务器->服务器...点击下一个
  3. 。在 New Server: Define a New Server 窗口中,选择 Apache> Tomcat 7 Server
  4. ..现在点击标题为:配置运行时环境的蓝色线和下划线
  5. 服务器运行时环境窗口中,
  6. ..选择Apache,展开它(点击左边的箭头),选择TOMCAT v7.0,然后点击EDIT .
  7. 您将看到一个名为 EDIT SERVER RUNTIME ENVIRONMENT: TOMCAT SERVER 的窗口
  8. 在此屏幕上有一个标记为 JRE 的下拉菜单。
  9. 您应该会发现您的 JRE 以 JRE1.6.0.33 的形式列出。如果不使用已安装的 JRE 按钮。
  10. 选择所需的 JRE。点击完成按钮。
  11. 优雅退出,在Server: Server Runtime Environments窗口中,点击OK
  12. 新建服务器:定义新服务器窗口中,点击NEXT
  13. 新服务器:添加和删除窗口中,选择应用程序并将它们安装到服务器上。
  14. 新服务器:添加和删除窗口中,单击完成

就是这样。有趣的是,似乎只有步骤 7-10 很重要,它们将更改您之前定义为使用 TOMCAT v7.0 的所有服务器上使用的 JRE。剩下的步骤只是因为除了定义一个新服务器之外,我找不到任何其他方式进入屏幕。有没有人知道更简单的方法?

【讨论】:

  • 我在 windows 7 操作系统上使用 .exe 文件 [windows service] 安装了 tomcat 6。因此,我在 tomcat 的 bin 目录中看不到 catalina.sh 文件。有没有其他方法可以更改映射到这样的tomcat安装的jdk版本?
【解决方案3】:

在 Linux 上,Tomcat7 的配置文件位于:

/etc/sysconfig/tomcat7

... 这是应该进行服务器特定配置的地方。您可以在此处设置 JAVA_HOME 环境变量,而无需创建 profile.d/ 脚本。

这对我有用。

【讨论】:

  • 不确定为什么投反对票。评论会很好。这个解决方案再次对我有用。
  • 这在哪个 Linux 发行版上有效?我得到ls: cannot access /etc/sysconfig/tomcat7: No such file or directory
  • 亚马逊网络服务 AMI Linux
  • @kostmo 检查/etc/default/tomcat7 (askubuntu.com/questions/154953/specify-jdk-for-tomcat7)
【解决方案4】:

如果您使用标准脚本来启动 Tomcat(即您尚未将 Tomcat 作为 Windows 服务安装),您可以使用 setenv.bat 文件来设置您的 JRE_HOME 版本。

在 Windows 上,创建文件 %CATALINA_BASE%\bin\setenv.bat,内容为:

set "JRE_HOME=%ProgramFiles%\Java\jre1.6.0_20"

exit /b 0

应该就是这样。

您可以使用 %CATALINA_BASE%\bin\configtest.bat 对此进行测试(免责声明:我仅使用 Tomcat7 安装进行了检查)。

进一步阅读:

【讨论】:

    【解决方案5】:

    这里有几个很好的答案,但我想添加一个,因为它可能对像我这样在 Windows 机器上安装了 Tomcat 作为服务的用户有所帮助。

    此处的选项 3:http://www.codejava.net/servers/tomcat/4-ways-to-change-jre-for-tomcat

    基本上,打开 tomcatw.exe 并将 Tomcat 指向您需要使用的 JVM 版本,然后重新启动服务。确保您部署的应用程序仍然可以正常工作。

    【讨论】:

    • 仅供参考:tomcatw 从注册表中读取其属性 - 例如:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\Tomcat7\Parameters\Java
    【解决方案6】:

    您可以使用以下步骤更改 JDK 或 JRE 位置:

    1. 打开终端cmd
    2. 转到[tomcat-home]\bin 目录。
      例如:c:\tomcat8\bin
    3. 编写以下内容 命令:Tomcat8W //ES//Tomcat8
    4. 将打开对话框,选择java选项卡(顶部窗格)
    5. 更改 Java 虚拟机值。
    6. 点击确定

    注意: 在 Apache TomEE 中的步骤相同,但 步骤 (3) 命令必须是:TomEE //ES

    【讨论】:

    • 出于某种原因,我检查了默认 Java 路径
    【解决方案7】:

    测试 打开终端或cmd。 转到 [tomcat-home]\bin 目录。 例如:c:\tomcat8\bin 编写以下命令:Tomcat8W //ES//Tomcat8 将打开对话框,选择 java tap(top tap)。 更改 Java 虚拟机值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-16
      相关资源
      最近更新 更多