Centos

使用不同的java版本執行兩個程序

  • August 13, 2019

我在我的新 CentOS 上安裝了兩個 JAVA JRE,因為 Cassandra 需要 java7u25 或更高版本,而 iReport 需要使用 1.6。

現在如何從命令行啟動每個程序,告訴每個程序使用哪個版本?

我必須更改/etc/profile文件嗎?如果有怎麼辦?

把它們都放進去是沒有意義的,$PATH因為只有一個會被使用。您可以將一個符號連結到不同的名稱——例如java6——我從來沒有嘗試過這個 w/java 並且不確定它是否會工作。

最好的方法是將其中一個(大概是 1.6)安裝在類似的位置/opt/java6,將 1.7 保留為預設值。然後當你想使用 6 時:

export PATH=/opt/java6/bin:$PATH

並從命令行啟動它。您也可以將所有這些放在一個腳本中。之後不要嘗試從同一個 shell 執行 Cassandra,除非你將它從$PATH(檢查的簡單方法是echo $PATH)中刪除。

要為一個特定的應用程序自動執行此操作:

#!/bin/sh

export PATH=/opt/java6/bin:$PATH
exec /path/to/application

然後你可以把它放在正常的某個地方$PATH(例如,/usr/local/bin),確保它是可執行的(chmod 755 whatever.sh)並以這種方式啟動應用程序。然後它不會影響$PATH啟動它的過程。

引用自:https://unix.stackexchange.com/questions/178875