如何找到我刚刚安装的openjdk-11?

Gar*_*100 5 jdk openjdk software-installation

ghidra我目前正在尝试在我的 Ubuntu 20.04 机器上安装。安装时,我得到这个:

******************************************************************
JDK 11+ (64-bit) could not be found and must be manually chosen!
******************************************************************
Enter path to JDK home directory (ENTER for dialog): 
Run Code Online (Sandbox Code Playgroud)

所以,我觉得很酷,然后运行:

sudo apt-get install openjdk-11-jdk
Run Code Online (Sandbox Code Playgroud)

如果我现在运行whereis java

/usr/share/java$ whereis java
java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz
Run Code Online (Sandbox Code Playgroud)

所以我 cd 到第一个目录,然后看:

/usr/share/java$ ls
commons-logging-1.2.jar           java-atk-wrapper.jar  pdfbox-1.8.16.jar
commons-logging-adapters-1.2.jar  java_defaults.mk      pdfbox.jar
commons-logging-adapters.jar      java_uno.jar          ridl-6.4.7.jar
commons-logging-api-1.2.jar       juh-6.4.7.jar         ridl.jar
commons-logging-api.jar           juh.jar               unoloader-6.4.7.jar
commons-logging.jar               jurt-6.4.7.jar        unoloader.jar
fontbox-1.8.16.jar                jurt.jar
fontbox.jar                       libintl.jar
Run Code Online (Sandbox Code Playgroud)

这是一堆jar文件?一般jdk都有bin文件夹之类的吗?

我还尝试进行/usr/share/javaghidra 安装,但它抱怨这不是有效的 jdk 主目录,因为它缺少文件bin夹。

Gil*_*ido 2

由于您之前已经检查过whereis二进制文件是否已安装,
现在您可以检查它是否可以正确执行:

  • 它的位置是否属于您的 PATH 变量?尝试该命令which java,它应该返回类似的内容/usr/bin/java

  • 那么它是一个有效的二进制文件吗?尝试使用命令显示其版本java -version,它应该显示类似的内容

openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)
  • 还要记住,某些 java 应用程序可能需要设置JAVA_HOME环境变量。然后你可以将其设置为你的java安装的主目录,例如JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

为了帮助您检索 java 主路径,您可以使用which java | xargs realpath它提供的路径(或者您可以在提供的路径上多次/usr/lib/jvm/java-11-openjdk-amd64/bin/java使用),您需要从中删除最新的部分。ls -lwhich/bin/java

PS:请注意,如果您的系统上需要多个 java 运行时,则 PATH 解析和 JAVA_HOME 必须匹配相同的版本。
在您方便的时候,您可以将任何特定版本解压缩到任何文件夹(例如 /my/custom/install/jdk15/)并覆盖系统路径:

  export JAVA_HOME=/my/custom/install/jdk15
  export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

在我的系统上,我使用如下命令在 .bashrc 中设置 JAVA_HOME:

export JAVA_HOME=`dirname $(dirname $(readlink -f $(which java)))`
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)