在Windows和Linux上使用Java 8的Tomcat 7

时间:2014-07-01 07:00:47

标签: linux tomcat java-8

我遇到了以下问题:

我想在Apache Tomcat 7.0.54上使用基于Java-8的Java Servlet。

当我在本地计算机上运行它(Win-64,jdk build 1.8.0-b132)时,它运行良好。

但是当我在生产中部署它时(Debian GNU / Linux 7.5(wheezy),jdk build 1.8.0-b132,Tomcat 7.0.54-2)它抛出:

Unsupported major.minor version 52.0 (unable to load class ru.tomtrix.fvds.servlets.ItemServlet)

...这意味着不支持的Java-8类。 那么Tomcat的相同版本的Windows和Linux实例出了什么问题呢?

3 个答案:

答案 0 :(得分:12)

谢谢大家,我发现了发生的事。事实证明,JAVA_HOME没有以正确的方式定义(如注销和Marko Topolnik所提到的)。我打开 / etc / default / tomcat7 并更改了此部分:

# The home directory of the Java development kit (JDK). You need at least
# JDK version 6. If JAVA_HOME is not set, some common directories for
# OpenJDK, the Oracle JDK, and various Java SE 6+ versions are tried.
#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk
JAVA_HOME=/path/to/my/jdk

......一切都开始奏效了! Tomcat是否真的使用默认的OpenJDK内部JDK?

答案 1 :(得分:3)

每个Tomcat实例默认使用计算机上的默认JDK。 您可以更改默认JDK(如果使用一个Tomcat实例),也可以告诉Tomcat使用不同的JDK。

  1. 为每个TOMCAT实例设置不同的JDK:
  2. catalina.sh调用setenv.sh以使用JDK。在CATALINA_BASE / bin中创建文件setenv.sh(如果不存在)。 CATALINA_BASE代表Tomcat文件夹。用gedit打开setenv.sh:

    sudo gedit setenv.sh
    

    写下这一行:

    export JAVA_HOME=/path/to/your/JDK
    

    Tomcat建议在setenv.sh中导出JAVA_HOME,而不是在catalina.sh中导出。

    1. 用于更改Ubuntu上的默认JDK:

      sudo update-alternatives --install / your / path / to / JDK / bin / java

    2. 或:

      sudo update-alternative --install  ${JAVA_HOME}/bin/java
      

      如果你定义了JAVA_HOME。

答案 2 :(得分:0)

JAVA_HOME环境变量与Eclipse如何运行代码无关。同样,您为项目显示的编译器设置也不会影响代码的运行方式。

相反,您需要查看正在使用的运行配置并检查那里的环境。确保你使用的是Java 8,一切都应该很好。单击“运行”按钮旁边的三角形,然后选择“#34;运行配置..."用所有设置打开对话框。然后查看JRE选项卡,确保您使用正确的JRE。