![](/img/trans.png)
[英]Where can I find the "full path to java binary" on linux server?
[英]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/
其他一些子目录(以及其他实现,我认为)。
对于任何给定的包,您可以通过查询 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.