Centos
使用不同的java版本執行兩個程序
我在我的新 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
啟動它的過程。