如何找到java的路径?

Ale*_*nko 39 java openjdk android-studio

我需要将我的 openJDK 更新到 8 版本......我以这种方式下载了新版本:

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update 
sudo apt-get install openjdk-8-jdk
sudo update-alternatives --config java
sudo update-alternatives --config javac
Run Code Online (Sandbox Code Playgroud)

当我检查 Java 版本时

java -version
Run Code Online (Sandbox Code Playgroud)

我得到

openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-0ubuntu4~14.04-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
Run Code Online (Sandbox Code Playgroud)

但是它保存在哪里呢?我需要知道,因为我应该将此路径设置为AndroidStudio.

Vid*_*uth 54

只需执行(在终端中):

update-alternatives --list java
Run Code Online (Sandbox Code Playgroud)

你会得到这样的输出:

 $ update-alternatives --list java
/usr/bin/gij-5
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
Run Code Online (Sandbox Code Playgroud)

最后一行是你所在的地方java


Sin*_*ary 19

您需要深入研究符号链接。下面是获取Java目录的步骤

第1步:

$ whereis java
java: /usr/bin/java /etc/java /usr/share/java
Run Code Online (Sandbox Code Playgroud)

这告诉命令 java 驻留在 /usr/bin/java 中。

第2步:

$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 2009-01-15 18:34 /usr/bin/java -> /etc/alternatives/java
Run Code Online (Sandbox Code Playgroud)

所以,现在我们知道这/usr/bin/java实际上是一个指向/etc/alternatives/java.

使用上述相同的方法深入挖掘:

第 3 步:

$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 31 2009-01-15 18:34 /etc/alternatives/java -> /usr/local/jre1.6.0_07/bin/java
Run Code Online (Sandbox Code Playgroud)

所以,这就是java的实际位置: /usr/local/jre.....

您仍然可以深入挖掘以找到其他符号链接。


参考:java 的主目录在哪里?


小智 5

export JAVA_HOME=$(dirname $(dirname $(update-alternatives --list javac)))
Run Code Online (Sandbox Code Playgroud)

为了使这个看似完成的设置更清晰,在我安装了开放 JDK 8 的 Ubuntu Linux 机器上:

$ update-alternatives --list java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

$ update-alternatives --list javac
/usr/lib/jvm/java-8-openjdk-amd64/bin/javac
Run Code Online (Sandbox Code Playgroud)

但我们需要的是JDK的bin目录的路径。因此询问 javac 的位置,然后使用 dirname 两次。

有关更多信息,请参阅 man update-alternatives 。