Centos 6.6:当我不使用java -jar命令运行JAR / WAR文件时select哪个java?

在Centos 6.6服务器上,如何在不使用“java -jar”命令的情况下运行可执行JAR或WAR文件时如何select应该select哪个java。 我的意思是,我想用“./archive.war”命令来执行它。

在这台服务器上,我安装了java6,java7和java8。 用户root的PATH和JAVA_HOME指向java8(所有事情都由root完成)。 我想要执行的可执行WAR需要用java8运行。

当我用“java -jar”命令运行我的可执行文件WAR时,一切正常。 所选的Java版本是正确的。

[...]# java -version java version "1.8.0" Java(TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode) 

但是,当我尝试使用以下命令运行这场战争…

 ./archive.war 

我得到一个Java版本的错误。

 Exception in thread "main" java.lang.UnsupportedClassVersionError: <CLASS HERE!> : Unsupported major.minor version 52.0 

这意味着Centos没有select预期的java8版本。 用户root的PATH和JAVA_HOMEvariables没有被考虑到?

我想我错过了一些东西,它会告诉系统在执行带有* .WAR / JAR文件扩展名的文件时必须使用哪个可执行文件? 目前,这必须指向java6或java7,而不是java8。

作为root用户,您可以在/ etc / profile中附加JAVA_HOME值

 export JAVA_HOME=/opt/jdkpath PATH=$PATH:$HOME/bin:/opt/jdkpath/bin 

将/ opt / jdkpath更改为您的jdk安装的正确path。

一旦你这样做,你可以注销并login回执行服务命令