我无法在 Raspberry Pi 5 上安装 Java 21。我从 openJDK 和 Oracle 下载了 ARM 版本,但这两个版本都不适合我。
当输入 ./java 时,它会打印:“没有这样的文件或目录”(我确定我在正确的目录中)
我找不到任何可用于安装 Java 21 的存储库,并且我需要比 17 更新的 Java 版本来支持用 Java 21 编写的项目。
文件./java输出
./java:ELF 64 位 LSB 饼可执行文件,ARM aarch64,版本 1 (SYSV),动态链接,解释器 /lib/ld-linux-aarch64.so.1,适用于 GNU/Linux 3.7.0,未剥离
ldd./java输出:
java是“不是动态可执行文件”
您知道如何在 Raspberry Pi 5 上安装 Java 21 吗?
如何重现:
OpenJDK:来自网站(https://jdk.java.net/21/)我下载了 Linux / AArch64 的版本,将其解压并尝试使用上述目录内的 java 命令从解压目录 bin/java 运行 java 可执行文件
甲骨文JDK:我从网站下载(https://www.oracle.com/pl/java/technologies/downloads/) ARM64 压缩存档版本,其功能与 OpenJDK 版本完全相同。
Raspberry Pi 5 的默认发行版是:Raspberry Pi 操作系统 64 位(基于 Debian)
输出为 查找 / -name java -type f -exec ls -l {} ; 2>/dev/空:
Bloodlex@raspberrypi:~/Download/jdk-21.0.1/bin $ find / -name java -type f -exec ls -l {} ; 2>/dev/null -rwxr-xr-x 1 Bloodlex Bloodlex 70792 10-05 15:44 /home/bloodex/Download/jdk-21.0.1/bin/java
输出为 文件/bin/ls:
Bloodlex@raspberrypi:~/Download/jdk-21.0.1/bin $ 文件 /bin/ls /bin/ls: ELF 32 位 LSB 可执行文件,ARM,EABI5 版本 1 (SYSV),动态链接,解释器 /lib/ld -linux-armhf.so.3,BuildID[sha1]=73a3ba02d9f4bf3632cbebe139c6a844ca5076d3,适用于 GNU/Linux 3.2.0,已删除
输出为 uname -a
Bloodlex@raspberrypi:~/Download/jdk-21.0.1/bin $ uname -a Linux raspberrypi 6.1.0-rpi6-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.58-1+rpt2 (2023-10-27 ) aarch64 GNU/Linux
答案1
我决定擦除 Raspberry 上的 SD 卡(我随设备一起收到的那张卡)并下载了新的官方 Raspberry Pi 5 64 位映像。现在,Java 在 ARM 64 位版本上可以正常工作,没有任何问题。看来现在用户空间也应该是 64 位的了。
因此,我的解决方案是不要使用 Raspberry Pi 5 随附的 SD 卡上提供的默认操作系统。我建议下载官方工具和操作系统并自行操作。