我知道 StackOverflow 上有很多问题可以解决这个问题(我一直遵循这些解决方案),但我仍然陷入困境。该应用程序在我的机器上本地运行良好,但我无法让它在 Ubuntu 服务器上运行。以下是我为解决这个问题所做的工作:
- 据我了解,
不支持的 Major.minor 版本 52.0
表示与 Java 版本存在冲突。我通过在 Ubuntu 服务器上安装 Java 1.8 并将其设置为默认 Java 来修复此问题。 - 我的
java -version
和javac -version
在 Ubuntu 服务器上为1.80_40
,在本地计算机上为1.8.0_31
。 - 我在 Ubuntu 服务器上的
$JAVA_HOME
路径是/usr/lib/jvm/java-8-oracle/
- 执行此操作后,我重新启动了 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 -version
和javac -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/