我最近在我的 Mac(我运行 OSX 10.7.5)上为我的 java 开发人员课程下载了 jdk 7u25。从 Oracle 下载 .dmg 文件后,网址为 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 成功安装包后,我尝试在 Library>Java>JavaVirtualMachines>jdk1.7.0_25.jdk>Contents>Home>MacOS>libjli.dylib
在终端(默认程序)上打开后,我收到一条如下所示的短信:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre/lib/jli/libjli.dylib ; exit;
-bash: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre/lib/jli/libjli.dylib: cannot execute binary file
logout
[Process completed]
我可能在这里做错了什么,但我没有办法找出来,因为Oracle上的所有常见问题解答都非常模糊和基础,或者论坛上的所有答案都超出了我对java的了解。
我是一个非常初学者,我只想像在学校一样在我的笔记本电脑上运行相同的jdk,以便我可以把工作带回家。
转到应用程序 -> 实用程序 -> 终端
在命令行输入:
java --版本
这会告诉你安装的jdk版本。
JDK 升级后,例如如果从 Homebrew 开始,MacOS 将发出警告,它无法打开 libjli.dylib、java 和 (Open)JDK 的其他二进制文件。
原因: Apple 向未签名或错误签名的软件添加了一个属性:
com.apple.quarantine
,可防止文件被执行。
解决方案: 从文件中删除隔离属性。
示例:
sudo xattr -r -d com.apple.quarantine /Library/Java/JavaVirtualMachines/graalvm-jdk-17
解释:
-r
- 删除标志
-d
- 文件属性名称
这同样适用于
libjli.dylib
。切换到目录并使用上面的解决方案。