我的mac osx 10.7.3中有一个可疑的Java问题。 以前我安装它,它工作正常。 在经过一段时间的.bash_profile和.profile文件的一些更改之后, 我有一个像
这样的错误Unable to locate an executable at "/usr/bin/java/bin/java"
每当我尝试在终端中运行“javac”或“java”时。
echo $PATH
提供如下输出:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/sabya/Documents/Play_Framework/play-2.0:/usr/X11/bin:/usr/local/git/bin:/usr/local/mysql/bin
我的.bash_profile看起来像:
alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop"
export JAVA_HOME=/usr/bin/java
which java
/usr/bin/java
它让我烦恼了很长时间,卸载和安装java并没有帮助我好运。
我是Mac的新手,需要帮助解决这个问题。
在发布此问题之前用Google搜索并查看了SOF,但没有找到任何与我的问题相关的内容。
谢谢
Sabya
答案 0 :(得分:84)
当然,export JAVA_HOME=/usr/bin/java
是罪魁祸首。此env var应指向JDK或JRE安装目录。谷歌搜索显示,MacOS X的最佳选项似乎是export JAVA_HOME=/Library/Java/Home
。
答案 1 :(得分:10)
JAVA_HOME
不是java可执行文件的名称。但是在目录中,安装了java。可执行文件应该是$JAVA_HOME/bin/java
。
which
命令对您没有帮助。它不会给你java home,但很可能这只是一个安装在一个非常不同的目录中的java的包装或符号链接。
答案 2 :(得分:10)
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
由于:
$ find /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home -name java*
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javac
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javadoc
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javafxpackager
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javah
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javap
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/javapackager
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/javafx-src.zip
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/java
答案 3 :(得分:1)
在MacOS Catalina中,运行
sudo nano ~/.bash_profile
在 bash_profile 中,添加:
export JAVA_HOME=$(/usr/libexec/java_home)
source ~/.bash_profile
通过运行 java --version
进行验证答案 4 :(得分:0)
我遇到了同样的问题。使用以下几行更新bash_profile,为我解决了这个问题:
export JAVA_HOME='/usr/'
export PATH=${JAVA_HOME}/bin:$PATH
答案 5 :(得分:0)
对我来说,当我下载macOS Compressed Archive
包含基础目录的
jdk-11.0.8.jdk
- Contents
- Home
- bin
- ...
- MacOS
- _CodeSignature
因此,要解决该问题,应将JAVA_HOME直接指向/ Path-to-JDK / Contents / Home。
答案 6 :(得分:0)
对于那些使用Java较新版本的用户:jhat
自Java 9以来已被删除。来源:https://www.infoq.com/news/2015/12/OpenJDK-9-removal-of-HPROF-jhat/
同一篇文章建议改用Java VisualVM。