无法在“中”找到可执行文件/usr/bin/java/bin/java“;(-1)

无法在“中”找到可执行文件/usr/bin/java/bin/java“;(-1),java,macos,javac,Java,Macos,Javac,我在MacOSX10.7.3中遇到了一个关于Java的可怜问题。 以前我安装了它,它工作得很好。 随着时间的推移,.bash_概要文件和.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:/Us

我在MacOSX10.7.3中遇到了一个关于Java的可怜问题。 以前我安装了它,它工作得很好。 随着时间的推移,.bash_概要文件和.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_配置文件如下所示:

alias start_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM start"
alias stop_mysql="/Library/StartupItems/MySQLCOM/MySQLCOM stop"
export JAVA_HOME=/usr/bin/java
哪个java的输出

/usr/bin/java
它困扰了我好几天,卸载和安装java对我的运气没有帮助

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

在发布这个问题之前,谷歌搜索并查看了SOF,但没有发现任何与我的问题相关的东西

谢谢


Sabya

最肯定的是,
导出JAVA_HOME=/usr/bin/JAVA
是罪魁祸首。这个env变量应该指向JDK或JRE安装目录。谷歌搜索显示,MacOS X的最佳选择似乎是导出JAVA_HOME=/Library/JAVA/HOME
JAVA_HOME
不是JAVA可执行文件的名称。但在目录中,java安装在。可执行文件应该是
$JAVA\u HOME/bin/JAVA

which
命令对您没有帮助。它不会为您提供java主页,但很可能这只是安装在完全不同目录中的java的包装器或符号链接

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

我也遇到过同样的问题,在读了这篇文章之后,我仔细检查了
.bash\u profile
中的
JAVA\u HOME
定义。事实上:

export JAVA_HOME=$(which java)
正如所解释的,这就是可执行文件。将其更改为:

export=/Library/Java/Home

解决了这个问题,但我仍然很有兴趣理解为什么在概要文件中它会以这种方式被重视。

我也遇到了同样的问题。使用以下行更新bash_概要文件,为我解决了问题:

export JAVA_HOME='/usr/'

export PATH=${JAVA_HOME}/bin:$PATH
在MacOS Catalina,运行

sudo nano ~/.bash_profile
在bash_配置文件中,添加:


通过运行java--version来验证,当我下载了底层目录中包含的
macOS压缩归档文件时,就会出现问题

jdk-11.0.8.jdk
- Contents
  - Home
    - bin
    - ...
  - MacOS
  - _CodeSignature

因此,为了解决这个问题,JAVA_HOME应该直接指向JDK/Contents/HOME的/Path。

对于那些使用较新版本JAVA的用户:
jhat
自JAVA 9以来已被删除。资料来源:


同一篇文章建议改为使用。

export JAVA_HOME=/Library/JAVA/HOME in.bash_profile工作得非常好。感谢您的帮助。:-)我的安装在
/Library/Java/JavaVirtualMachines/jdk1.8.031.jdk/Contents/Home
。这对我来说也很好,尽管我不理解。如果您想知道控制台返回的“哪个java”/usr/bin/java,那么为什么我们必须设置一个不同的路径?@Loebre:请参阅Anony-Mousse2019 JDK 11更新的答案:
export java\u HOME=/Library/java/JavaVirtualMachines/JDK-11.0.1.JDK/Contents/HOME
我也遇到了同样的问题,我遵循了您的解决方案,但终端没有保存我的设置。如何保存bash配置文件上的设置?
jdk-11.0.8.jdk
- Contents
  - Home
    - bin
    - ...
  - MacOS
  - _CodeSignature