我在哪里可以找到Linux中的Java SDK?

din*_*707 174 java linux

我使用apt-get install安装了JDK.我不知道我的jdk文件夹在哪里.我需要为此设置路径.有没有人知道这个位置?

Paŭ*_*ann 368

这取决于您的软件包系统...如果该java命令有效,您可以键入readlink -f $(which java)以查找java命令的位置.在OpenSUSE系统上,我现在它返回/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(但这不是一个使用的系统apt-get).


在Ubuntu上,看起来它适用于 /usr/lib/jvm/java-6-openjdk/ OpenJDK,以及/usr/lib/jvm/Suns JDK的其他一些子目录(以及其他实现,我认为).

Debian是一样的.


对于任何给定的包,您可以通过查询dpkg来确定它安装的文件以及安装它们的位置.例如,包'openjdk-6-jdk':dpkg -L openjdk-6-jdk

  • 看来我的路径是`/ usr/lib/jvm/java-7-openjdk-amd64`. (3认同)
  • 我认为readlink是最优雅(和高效),但我建议`readlink -f $(哪个javac)` - 注意'c'以防在同一台机器上有奇怪的JDK和JRE混合.JDK包含编译器(javac),而JRE则不包含.但是如果路径不正确,哪个会失败,你可以尝试这个:`find/usr/java -wholename'*ava/jdk*'-prune`,我在下面的评论中注明. (2认同)

for*_*sck 41

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

将告诉您哪个java实现是您的系统的默认实现,以及它在文件系统中的安装位置.查看手册以获取更多选项.

  • 这是debian特定的(至少).其他发行版可能没有这个 (7认同)
  • @dequis,这是一个特定于debian的答案,因为问题提到`apt-get`和发行版是`Debian 2.6.26`.AFAIK,对于所有debian衍生物应该是相同的. (2认同)
  • 我只是为其他人指出.我知道它对这个特殊问题有效. (2认同)
  • 更新替代方案--列表| grep java 在 RHEL 上为我工作 (2认同)

The*_*can 30

$ which java 
Run Code Online (Sandbox Code Playgroud)

应该给你一些类似的东西

/usr/bin/java
Run Code Online (Sandbox Code Playgroud)

  • 这实际上并不指向完整的JDK.1.它是一个符号链接,即使你读了符号链接,二进制文件也不在JDK中.例如,如果我运行命令`readlink -f $(哪个javac)`它打印`/ usr/lib/jvm/java-8-oracle/bin/javac`.该bin文件夹不是JDK.一般的酸碱测试,看看它是否是一个JDK,看看当前的`$ JAVA_HOME`是否包含`lib/tools.jar`的路径.在`/ usr/lib/jvm/java-8-oracle/bin`的强制转换中,这是不正确的,因此它不是JDK. (5认同)
  • 只有当它已经在路径中时才会起作用. (2认同)
  • 真正.我打赌它是在apt-get安装之后 (2认同)

And*_*ell 12

这个问题会被移动,但您可以执行以下操作

which javac
Run Code Online (Sandbox Code Playgroud)

要么

cd /
find . -name 'javac'
Run Code Online (Sandbox Code Playgroud)


Bre*_*den 9

使用find找到它.它应该在/usr某个地方:

find /usr -name java
Run Code Online (Sandbox Code Playgroud)

运行该命令时,如果有太多"Permission denied"消息混淆了实际找到的结果,那么只需将stderr重定向到/ dev/null

find /usr -name java 2> /dev/null
Run Code Online (Sandbox Code Playgroud)


ian*_*its 6

找到Java文件夹路径的另一个最好的方法是alternatives在Fedora Linux中使用命令(我知道它用于Ubuntu,但我只是通过标题来点击Google的这篇文章).只想分享喜欢我的人寻找有关fedora风味的答案.

显示有关java的所有信息

alternatives --display java
Run Code Online (Sandbox Code Playgroud)


小智 5

三步过程:首先:打开终端->$ whereis java 它将给出如下输出: java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

第二: ls -l /usr/bin/java 它会给出这样的输出: lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

第三: ls -l /etc/alternatives/java 输出是JDK路径: lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java