如何在Linux服务器中找到正在运行的应用程序的JRE版本

时间:2016-07-05 11:13:09

标签: java linux

我的结果低于结果,这是否意味着我有JDK 1.7.0_45而JRE是1.42?请指教。

$ javac -version
Eclipse Java Compiler v_677_R32x, 3.2.1 release, Copyright IBM Corp 2000, 2006. All rights reserved.
$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
$ alternatives --config java
There is 1 program that provides 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           **/usr/lib/jvm/jre-1.4.2-gcj/bin/java**

Enter to keep the current selection[+], or type selection number:

1 个答案:

答案 0 :(得分:0)

您似乎安装了两个版本的Java:

  • PATH上的Java是Java 1.7.0。我认为它是Oracle构建而不是Linux系统的软件包存储库。

  • 使用alternatives配置的Java看起来像是与Java 1.4.2兼容的GCJ Java。它可能是从您的软件包存储库安装的。 IMO,从技术角度来看,不宜使用它。事实上,我建议卸载它。

  

实际上,在将外部jar文件上传到Informatica powercenter Java转换后,我收到“不支持的major.minor版本51.0”错误。

这意味着Informatica正在使用Java 1.4.2安装。

现在,应用程序使用的Java版本将取决于应用程序的启动程序/启动脚本使用的Java版本。这可能取决于许多事情:

  • 如果启动器使用java命令的绝对路径,那么将使用该路径。
  • 如果启动器使用简单名称(例如java),则使用的版本将取决于启动器的$PATH。这可能是正在发生的事情......并且使用的$PATH与您的shell $PATH不同。

那么解决方案是什么?

  • 您可以将Oracle Java安装添加到alternatives系统。有关使用“java oracle alternative install”

  • 的说明,请参阅man alternatives或Google
  • 您可以调整应用程序启动器使用的$ PATH。

  • 根据您的Linux发行版,您可以从软件包存储库安装OpenJDK 1.7.0 JDK或JRE。这将(应该)将新安装的Java添加到alternatives数据库,以便您可以选择它而不是旧的GCJ 1.4.2安装。