2012-10-08 69 views
30

我在Linux Debian(Squeeze)上安裝Apache Solr。我被指示安裝sun-java jdk 1st。然後被告知我應該使用命令sudo update-alternatives --config java來確保特定的java(sun-java)是默認運行時。然而,當我運行這個命令,我得到:如何使用命令update-alternatives --config java

There are 3 choices for the alternative java (providing /usr/bin/java). 

    Selection Path          Priority Status 
------------------------------------------------------------ 
* 0   /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061  auto mode 
    1   /usr/bin/gij-4.4       1044  manual mode 
    2   /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061  manual mode 
    3   /usr/lib/jvm/java-6-sun/jre/bin/java  63  manual mode 

Press enter to keep the current choice[*], or type selection number: 

所以我應該選擇有陽光Java作爲默認的運行哪個號碼? 另外,自動和手動模式到底意味着什麼?如果我選擇上面的3並運行update-alternative命令,我會收到與上面相同的輸出,除了*現在位於3之前,似乎沒有任何變化,儘管它仍然讀取手動模式。

有沒有辦法確認我所做的是正確的?

回答

26

如果您在鍵入「java -version」後選擇選項,您會注意到一個很大的變化。因此,如果您運行update-alternatives --config java並選擇選項3,則將使用Sun實施。
此外,關於auto VS manual mode,進行選擇應該把它拿出來的auto modethis page指出:

當使用--config選項,方案將列出所有 選擇爲鏈路組,其中給定名稱是主鏈接。然後您將提示您 哪些選項用於鏈接 組。一旦您做出更改,鏈接組將不再位於 auto mode。您需要使用--auto選項才能將 返回到自動狀態。

而且我相信auto mode是在您安裝第一個/只有JRE/JDK時設置的。

3

有跡象表明,需要鏈接許多其他二進制文件descibed所以我認爲這是多大最好試試sudo update-alternatives --all之類的東西,並選擇除javajavac以外的其他所有選項的正確選項。

6

update-alternatives在這種情況下有問題,因爲它迫使您根據JDK更新所有元素。

爲此特定目的,包java-common包含一個名爲update-java-alternatives的工具。

使用它很簡單。首先列出JDK安裝可用的機器上:

[email protected]:~# update-java-alternatives -l 
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64 

然後拿起一個:

[email protected]:~# update-java-alternatives -s java-1.7.0-openjdk-amd64 
0

假設一個人在/opt/java/jdk1.8安裝了JDK。0_144然後:

  1. 安裝替代用於javac

須藤更新替代品--install的/ usr /斌/ javac的javac的/opt/java/jdk1.8.0_144/bin/javac 1

  • 檢查/更新的替代配置:
  • 須藤更新替代品--config javac的

    如果Javac只有一個選項,您將收到一條消息,否則請選擇新的jdk選項。

    要檢查一切都設置正確,則:

    其中的javac 的/ usr /斌/ javac的

    LS -l的/ usr /斌/ javac的 lrwxrwxrwx 1根根23 09月04日17時10// etc/alternatives/javac - >/etc/alternatives/javac

    ls -l/etc/alternatives/javac lrwxrwxrwx 1 root root 32 Sep 4 17:10/etc/alternatives/javac - >/opt/java/jdk1.8.0_144/bin/javac

    最後

    的javac -version 的javac 1.8.0_144

    耶!

    根據需要重複使用java,keytool,jar等