无法在"/ usr/bin/java/bin/java"(-1)找到可执行文件

Sab*_*bya 47 java macos javac

我的mac osx 10.7.3中有一个可疑的Java问题.以前我安装它,它工作正常.在经过一段时间的.bash_profile和.profile文件的一些更改之后,我遇到了类似的错误

Unable to locate an executable at "/usr/bin/java/bin/java"
Run Code Online (Sandbox Code Playgroud)

每当我尝试在我的终端中运行"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
Run Code Online (Sandbox Code Playgroud)

我的.bash_profile看起来像:

alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop"
export JAVA_HOME=/usr/bin/java
Run Code Online (Sandbox Code Playgroud)

输出 which java

/usr/bin/java
Run Code Online (Sandbox Code Playgroud)

它长时间困扰我,卸载和安装java并没有帮助我的运气.

我是Mac的新手,需要帮助解决这个问题.

在发布此问题之前用Google搜索并查看了SOF,但没有找到任何与我的问题相关的内容.

谢谢

Sabya

Ale*_*lov 93

最肯定的export JAVA_HOME=/usr/bin/java是,罪魁祸首.此env var应指向JDK或JRE安装目录.谷歌搜索显示,MacOS X的最佳选择似乎是export JAVA_HOME=/Library/Java/Home.

  • 我的安装在`/ Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home`中. (34认同)
  • 导出JAVA_HOME =/Library/Java/Home in .bash_profile工作得很好.谢谢你的帮助.:-) (4认同)
  • 这对我来说也很有效,尽管我不明白。如果你对于“which java”控制台返回的是/usr/bin/java,那我们为什么要设置不同的路径呢? (3认同)
  • JDK 11 的 2019 更新:`export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home` (3认同)

Ank*_*wal 12

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

因为:

 $ 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
Run Code Online (Sandbox Code Playgroud)


Ano*_*sse 11

JAVA_HOME不是Java可执行文件的名称.但是在目录中,安装了java.可执行文件应该是$JAVA_HOME/bin/java.

which命令对你没有帮助.它不会给你java home,但很可能这只是一个安装在一个非常不同的目录中的java的包装器或符号链接.