java - Tomcat7 启动时 Java 版本不正确

标签 java ubuntu

我知道 StackOverflow 上有很多问题可以解决这个问题(我一直遵循这些解决方案),但我仍然陷入困境。该应用程序在我的机器上本地运行良好,但我无法让它在 Ubuntu 服务器上运行。以下是我为解决这个问题所做的工作:

  1. 据我了解,不支持的 Major.minor 版本 52.0 表示与 Java 版本存在冲突。我通过在 Ubuntu 服务器上安装 Java 1.8 并将其设置为默认 Java 来修复此问题。
  2. 我的 java -versionjavac -version 在 Ubuntu 服务器上为 1.80_40,在本地计算机上为 1.8.0_31
  3. 我在 Ubuntu 服务器上的 $JAVA_HOME 路径是 /usr/lib/jvm/java-8-oracle/
  4. 执行此操作后,我重新启动了 Tomcat 和 Postgres(这并不重要?)

以下是部署 WAR 文件后出现的错误:

java.lang.UnsupportedClassVersionError: com/appname/servlets/getServlet: Unsupported major.minor version 52.0 (unable to load class com.appname.servlets.getServlet)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2948)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1208)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1688)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:745)

编辑:请不要将其标记为重复。我觉得我的问题是别的问题,因为我知道它是在相同版本(Java 1.8)上编译和运行的。

最佳答案

尽管 java -versionjavac -version在我的 Ubuntu 服务器中显示为 1.8,我注意到由于某种原因,当我访问 Tomcat 的 Manager-GUI(靠近底部)时,Tomcat 仍在使用 1.7。

此问题已在this question的帮助下得到解决。关于询问 Ubuntu。基本上,JAVA_HOME还需要使用 vi /etc/default/tomcat7 Tomcat 进行更新。我将我的设置为 /usr/lib/jvm/java-8-oracle ,重新启动Tomcat,现在Tomcat中显示了正确的版本。

关于java - Tomcat7 启动时 Java 版本不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29483838/

相关文章:

wordpress - 配置 Ubuntu VPS 以发送外发邮件?

ubuntu - 错误 -/usr/bin/ld : cannot find -lavutil in ubuntu 15. 04

ubuntu - 未在服务器上生成Nuxt.js项目构建

java - 如何在 Java 中为 TensorFlow DNNRegressor 提供输入?

java - Java 是否将除以 2 的幂的除法优化为位移位?

python - Raspberry Pi 3 - 视频错误 : select timeout() (Ubuntu)

php - 我无法在 ubuntu 上运行 artisan 命令

java - Maven + Tomcat 加速

java - 关于使用android获取IMEI,有以下错误

java - Spring Boot 使用系统托盘图标