M1芯片MacBook Air装Java8后无法用javaws打开JNLP文件求助
M1 MacBook Air 下 Java 8 的 javaws 无法使用问题解决
问题背景
已在M1芯片MacBook Air安装AdoptOpenJDK 8,Java运行正常,但执行javaws或打开jnlp文件时提示无法找到支持的Java Runtime,系统默认的/usr/bin/javaws无法关联到已安装的JDK。
环境信息
PATH 配置
% echo $PATH /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/xx/installations/icedtea/bin:/opt/homebrew/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
Java 版本及 javaws 状态
% which java /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/java % java -version openjdk version "1.8.0_292" OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_292-b10) OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.292-b10, mixed mode) % javaws The operation couldn’t be completed. Unable to locate a Java Runtime that supports javaws. Please visit http://www.java.com for information on installing Java. % which javaws /usr/bin/javaws % cd /Library/Java/JavaVirtualMachines/ JavaVirtualMachines % ls adoptopenjdk-8.jdk % javaws xyz.jnlp The operation couldn’t be completed. Unable to locate a Java Runtime that supports javaws. Please visit http://www.java.com for information on installing Java.
已执行操作
添加了Homebrew OpenJDK的符号链接:
% sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
问题分析
- AdoptOpenJDK 8的该版本未包含
javaws工具:检查/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin目录,无javaws可执行文件,导致系统只能调用/usr/bin/javaws,而该工具无法识别ARM架构的JDK。 - 系统默认
javaws对M1芯片的ARM架构JDK兼容性差。
解决方案
步骤1:安装适配M1的带javaws的Java 8 JDK
推荐使用Azul Zulu JDK 8(对ARM64架构支持完善,且默认包含javaws):
# 用Homebrew安装Zulu 8 brew install zulu8
步骤2:配置环境变量优先使用Zulu JDK
编辑zsh配置文件(M1 Mac默认shell为zsh):
echo 'export PATH="/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
步骤3:验证配置
# 检查Java版本是否切换为Zulu 8 java -version # 检查javaws路径是否指向Zulu的bin目录 which javaws # 验证javaws可用 javaws -version
步骤4:清理无效符号链接(可选)
之前添加的Homebrew OpenJDK符号链接与Java 8无关,可删除:
sudo rm /Library/Java/JavaVirtualMachines/openjdk.jdk
完成以上步骤后,即可正常使用javaws打开jnlp文件。
内容的提问来源于stack exchange,提问作者Aquarius_Girl
相关产品推荐
相关产品推荐

