如何为给定的 Ubuntu VM 选择 JDK

如何为给定的 Ubuntu VM 选择 JDK

我的 Windows 10 机器是 HP EliteBook 840 G6,运行 i5-8365U。我最近在 VirtualBox 6.1.28 上安装了 Ubuntu 20.04.3 LTS 作为虚拟机。ISO 文件 ubuntu-20.04.3-desktop-amd64.iso 来自https://ubuntu.com/download/desktop

我必须从 AdoptOpenJDK、HotSpot JVM、更新 265 中选择一个 JDK 8 (LTS)。这是https://adoptopenjdk.net/archive.html?variant=openjdk8&jvmVariant=hotspot。可以通过在此时代搜索字符串“265”来找到相关文件。

有许多 Linux 选项可供选择:

  Linux ppc64le
  Linux s390x
  Linux x64
  Linux arm32
  Linux aarch64

我猜测我选择“x64”是因为我的 Ubuntu ISO 文件名包含“amd64”?

我不确定这是 Ubuntu 的问题还是 VM 的问题。

答案1

如果您不确定系统架构,可以使用终端中的uname -march命令。如果显示 x86_64 -> 则为 x64。
您可以参考这个答案更多细节。

顺便提一下,你可能已经注意到了,AdoptOpenJDK 已过渡到 Eclipsehttps://adoptopenjdk.net自 2021 年 7 月起将不再更新。新网站https://adoptium.net,发行版名称现在为“Temurin”。也就是说,如果您特别需要 265 版本,Adoptium 不会提供它,您最好坚持使用 AdoptOpenJDK。

答案2

我认为你可能有一个 XY 问题,即你真的想要一个适合您系统的 JVM。

总结 sudo apt install default-jdk

按照java在 Ubuntu 20.04 LTS WSL 实例上运行的建议:

tra@Thunder:~$ java

Command 'java' not found, but can be installed with:

sudo apt install openjdk-11-jre-headless  # version 11.0.11+9-0ubuntu2~20.04, or
sudo apt install default-jre              # version 2:1.11-72
sudo apt install openjdk-16-jre-headless  # version 16.0.1+9-1~20.04
sudo apt install openjdk-8-jre-headless   # version 8u292-b10-0ubuntu1~20.04
sudo apt install openjdk-13-jre-headless  # version 13.0.7+5-0ubuntu1~20.04
sudo apt install openjdk-17-jre-headless  # version 17+35-1~20.04

换句话说,Ubuntu 软件包系统中已经有几个可用的软件包。请注意,如果您确实需要编译程序,则需要更多类似javacJava 编译器的软件包。

tra@Thunder:~$ javac

Command 'javac' not found, but can be installed with:

sudo apt install openjdk-11-jdk-headless  # version 11.0.11+9-0ubuntu2~20.04, or
sudo apt install default-jdk              # version 2:1.11-72
sudo apt install openjdk-16-jdk-headless  # version 16.0.1+9-1~20.04
sudo apt install openjdk-8-jdk-headless   # version 8u292-b10-0ubuntu1~20.04
sudo apt install openjdk-13-jdk-headless  # version 13.0.7+5-0ubuntu1~20.04
sudo apt install openjdk-17-jdk-headless  # version 17+35-1~20.04
sudo apt install ecj                      # version 3.16.0-1

除非您有非常具体的要求,否则很有可能他们default-jdk会满足您的需要。

sudo apt install default-jdk

(回答“是”,然后观察下载量)

然后

tra@Thunder:~$ javac --version
javac 11.0.11
tra@Thunder:~$ java --version
openjdk 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)

答案3

按照马蒂戈的评论,“如果您使用 64 位 ISO(由 Intel/AMD 处理器支持),那么您将需要 x64。”

我实际上不必从adoptopenjdk地点https://adoptopenjdk.net/archive.html?variant=openjdk8&jvmVariant=hotspot并尝试弄清楚安装。相反,我在https://gist.github.com/phillipsj/950235f411dec9e0e90e199c6dde12e9使用“wget”获取 tarball 并安装它:

# install-openjdk-8.sh
#---------------------
wget -q https://github.com/AdoptOpenJDK/openjdk8-releases/releases/download/jdk8u172-b11/OpenJDK8_x64_Linux_jdk8u172-b11.tar.gz
tar -xf OpenJDK8_x64_Linux_jdk8u172-b11.tar.gz
sudo mkdir /usr/lib/jvm && sudo mv jdk8u172-b11 /usr/lib/jvm/jdk8u172-b11
export JAVA_HOME=/usr/lib/jvm/jdk8u172-b11
export PATH=/usr/lib/jvm/jdk8u172-b11/bin
java -version

我修改了它以适合我的版本的 tarball 的 URL,如在adoptopenjdk网站,并修复了我遇到的一些问题:

cd ~/tmp
wget -q https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u265-b01/OpenJDK8U-jdk_x64_linux_hotspot_8u265b01.tar.gz
tar -xf OpenJDK8U-jdk_x64_linux_hotspot_8u265b01.tar.gz

# Did next steps manually in case version string
# in the file name had a different pattern.
# They didn't, so just replace jdk8u172-b11 with jdk8u265-b01.
# Can't just paste the lines en masse to the Bash prompt cuz
# "sudo" wants password from keyboard, so separate the compound line.
sudo mkdir /usr/lib/jvm
sudo mv jdk8u265-b01 /usr/lib/jvm/jdk8u265-b01

# The following exports probably need to go into ~/.profile or
# some-such.  I need to know which ~/.* file to put it in and/or
# why ~/.profile isn't run after a "su - user-name".  For now,
# manually source ~/.profile after "su".
export JAVA_HOME=/usr/lib/jvm/jdk8u265-b01
export PATH="$PATH:/usr/lib/jvm/jdk8u265-b01/bin"
java -version

   openjdk version "1.8.0_265"
   OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_265-b01)
   OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.265-b01, mixed mode)

which java javac

   /usr/lib/jvm/jdk8u265-b01/bin/java
   /usr/lib/jvm/jdk8u265-b01/bin/javac

相关内容