如何更改Tomcat使用的Java版本?
题
我的系统上安装了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)
根本原因可能是什么?
解决方案
打开catalina.sh / catalina.bat时,您可以看到:
环境变量的先决条件
Java_home必须指向您的Java开发套件安装。
因此,设置您的环境变量 JAVA_HOME
指向Java 6.还确保 JRE_HOME
如果设置了相同的目标,则指向相同的目标。
更新:由于您在Windows上, 看这里 有关如何管理环境变量
其他提示
您可以使用以下步骤更改JDK或JRE位置:
- 打开 终端 或者 CMD.
- 去
[tomcat-home]\bin
目录。
前任:c:\tomcat8\bin
- 编写以下命令:
Tomcat8W //ES//Tomcat8
- 将打开对话框,选择 Java Tab(顶部窗格).
- 更改Java虚拟机器值。
- 点击 好的.
笔记:在Apache Tomee相同的步骤中,但是 步骤(3) 命令必须是: TomEE //ES
在Eclipse中,很容易将Tomcat指向新的JVM(在此示例JRE6中)。我的问题是我找不到在哪里做。这是一个技巧:
- 在Eclipse顶部菜单上 文件 下拉选项卡,选择 新的, -->其他
- ...在 新服务器:选择向导 窗口,选择: 服务器-> 服务器... 点击 下一个
- . 。在 新服务器:定义新服务器 窗口,选择 Apache> Tomcat 7服务器
- ..现在单击蓝色和下划线的行,标题为: 配置运行时环境
- 在 服务器运行时环境 窗户,
- ..选择 apache, ,展开它(单击左侧的箭头),选择 Tomcat v7.0, ,然后单击 编辑.
- 您会看到一个窗口 编辑服务器运行时环境:Tomcat服务器
- 在此屏幕上有一个标签的下拉 JRES.
- 您应该找到列出的JRE JRE1.6.0.33. 。如果不使用 安装了JRE 按钮。
- 选择所需的JRE。点击 结束 按钮。
- 优雅地退出 服务器:服务器运行时环境 窗口,单击 好的
- 在里面 新服务器:定义新服务器 窗口,命中 下一个
- 在里面 新服务器:添加和删除 窗口,选择应用程序并将其安装在服务器上。
- 在里面 新服务器:添加和删除 窗口,单击 结束
就这样。有趣的是,只有步骤7-10似乎很重要,它们将更改以前定义用于使用Tomcat v7.0的所有服务器上使用的JRE。其余步骤仅仅是因为我找不到其他方法来访问屏幕,除非定义新服务器。其他人知道一种简单的方法吗?
如果您使用标准脚本启动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安装对此进行检查)。
进一步阅读:
- http://tomcat.apache.org/tomcat-5.5-doc/running.txt - 部分:“高级配置 - 多个TOMCAT实例”
- http://tomcat.apache.org/tomcat-7.0-doc/running.txt - 部分:'(3.4)使用“ setEnv”脚本(可选,推荐)'
在Linux上,TomCat7的配置文件位于:
/etc/sysconfig/tomcat7
...这是应该制作特定于服务器的配置的地方。您可以在此处设置Java_home Env变量,而o需要创建一个profile.d/脚本。
这对我有用。
这里有几个好的答案,但我想添加一个答案,因为它对像我这样的用户可能会有所帮助,这些用户将Tomcat安装为Windows机器上的服务。
选项3此处: http://www.codejava.net/servers/tomcat/4-ways-to-change-jre-for-tomcat
基本上,打开tomcatw.exe并将tomcat指向您需要使用的JVM的版本,然后重新启动服务。确保您部署的应用程序也仍然有效。
测试打开末期或CMD。转到[tomcat-home] bin目录。例如:c: tomcat8 bin编写以下命令:tomcat8w // es // tomcat8将打开对话框,选择java tap(顶部点击)。更改Java虚拟机器值。