56

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

但是 Tomcat 5.5 访问 Java 1.5,因此在Bad version number in .class file使用 JSP 执行 java 代码时出现错误。

如何将 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)

根本原因可能是什么?

4

7 回答 7

50

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

环境变量先决条件

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

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

更新:由于您使用的是 Windows,请参阅此处了解如何管理环境变量

于 2010-11-01T19:15:10.263 回答
20

You can change the JDK or JRE location using the following steps:

  1. open the terminal or cmd.
  2. go to the [tomcat-home]\bin directory.
    ex: c:\tomcat8\bin
  3. write the following command: Tomcat8W //ES//Tomcat8
  4. will open dialog, select the java tab(top pane).
  5. change the Java virtual Machine value.
  6. click OK.

note: in Apache TomEE same steps, but step (3) the command must be: TomEE //ES

于 2015-07-28T06:45:28.290 回答
18

如果您使用标准脚本来启动 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 安装检查过这个)。

延伸阅读:

于 2013-07-18T05:59:57.097 回答
13

在 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. 在这个屏幕上有一个标记为JREs的下拉菜单。
  9. 您应该会发现您的 JRE 像JRE1.6.0.33一样列出。如果不使用Installed JRE按钮。
  10. 选择所需的 JRE。单击完成按钮。
  11. 优雅退出,在Server: Server Runtime Environments窗口中,点击OK
  12. New Server 中:Define a new Server窗口,点击NEXT
  13. 新服务器:添加和删除窗口中,选择应用程序并将它们安装在服务器上。
  14. 新服务器:添加和删除窗口中,单击完成

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

于 2013-02-08T02:45:10.703 回答
4

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

/etc/sysconfig/tomcat7

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

这对我有用。

于 2013-07-01T20:57:42.343 回答
1

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

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

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

于 2015-06-08T15:01:22.023 回答
-1

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

于 2015-09-29T10:52:21.953 回答