繁体   English   中英

安装后在 Linux 中哪里可以找到 Java SDK?

[英]Where can I find the Java SDK in Linux after installing it?

我使用 apt-get install 安装了 JDK,但我不知道我的 jdk 文件夹在哪里。 我需要为此设置路径。 有没有人知道地点的线索?

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


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

Debian 也是一样。


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

update-java-alternatives -l

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

$ which java 

应该给你类似的东西

/usr/bin/java

这个问题会被移动,但你可以做以下事情

which javac

或者

cd /
find . -name 'javac'

使用 find 来定位它。 它应该在/usr某个地方:

find /usr -name java

运行命令时,如果有太多“权限被拒绝”消息混淆了实际找到的结果,只需将 stderr 重定向到 /dev/null

find /usr -name java 2> /dev/null

查找 Java 文件夹路径的另一种最佳方法是在 Fedora Linux 中使用alternatives命令(我知道它适用于 Ubuntu,但我只是通过标题从 google 找到了这篇文章)。 只是想分享一下,以防像我这样的人正在寻找软呢帽风味的答案。

显示有关java的所有信息

alternatives --display java

很简单,试试看:

它是/ usr/local/java/jdk[版本]

三步过程:首先:打开终端-> $ 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

命令: sudo update-alternatives --config java将找到所有已安装 Java 版本的完整路径

这个问题似乎仍然相关,答案似乎是一个移动的目标。

在我的 debian 系统 (buster) 上:

> update-java-alternatives -l
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

然而,如果你真的去那里看看,你会看到包系统放置了多个目录和符号链接,以简化未来的维护。

实际目录是java-11-openjdk-amd64 ,另一个符号链接是default-java 还有一个openjdk-11目录,但它似乎只包含一个 source.zip 文件。

鉴于此,仅对于 Debian,我猜想使用的最佳值是/usr/lib/jvm/default-java ,因为这应该始终有效,即使您决定安装完全不同版本的 java,甚至切换供应商。

想要知道路径的正常原因是因为某些应用程序需要它,并且您可能不希望该应用程序中断,因为您进行了更改版本号的升级。

在 OpenSUSE 13.1/13.2 上: /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
版本号可以是 1.7.x 1.8.x 等。检查您安装的软件管理器版本...

安德烈

在 Linux Fedora30 上,有几个完整的 Java JDK 版本可用,特别是包名:

java-1.8.0-openjdk-devel.x86_64 
java-11-openjdk-devel.x86_64

安装后,它们位于: /usr/lib/jvm

要选择完整开发 JDK 的位置/目录(不同于更简单的仅运行时 JRE),请查找条目:

ls -ld java*openjdk*

这里有两个不错的选择,它们是特定版本的链接,您必须在其中选择版本:

/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk

这是对我有用的最佳方法执行此命令:-

$(dirname $(readlink $(which javac)))/java_home

下面的命令在我的debain 10盒子中工作!

root@debian:/home/arun# readlink -f $(which java)
/usr/lib/jvm/java-11-openjdk-amd64/bin/java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM