使用不同的java版本运行两个程序

Ire*_*ene 9 centos java jdk

我在我的新 CentOS 上安装了两个 JAVA JRE,因为 Cassandra 需要 java7u25 或更高版本,而 iReport 需要使用 1.6。

现在如何从命令行启动每个程序,告诉每个程序使用哪个版本?

我必须更改/etc/profile文件吗?如果是这样怎么办?

gol*_*cks 7

把它们都放在里面$PATH是没有意义的,因为只有一个会被使用。您可以将一个符号链接到不同的名称——例如java6——我从未尝试过使用 Java 进行此操作,并且不确定它是否可行。

执行此操作的最佳方法是将其中一个(大概是 1.6)安装在类似 的位置/opt/java6,将 1.7 保留为默认值。然后当你想使用 6 时:

export PATH=/opt/java6/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

并从命令行启动它。您也可以将所有这些放在一个脚本中。之后不要尝试从同一个 shell 运行 Cassandra,除非您将其从$PATH(检查的简单方法是echo $PATH)中删除。

要针对一个特定应用程序自动执行此操作:

#!/bin/sh

export PATH=/opt/java6/bin:$PATH
exec /path/to/application
Run Code Online (Sandbox Code Playgroud)

然后您可以将它放在常规中的某个位置$PATH(例如,/usr/local/bin),确保它是可执行的(chmod 755 whatever.sh)并以这种方式启动应用程序。然后它不会影响$PATH启动它的过程。