路径病理:java不再工作

路径病理:java不再工作

我的路径存在一些问题,导致我的 java 服务中断。这些组件似乎位于正确的位置。

$ which java
/usr/bin/java
$ which javac
/usr/bin/javac

但版本查询不再有效。

$ java --version
Unable to locate an executable at "/usr/bin/javac/bin/java" (-1)
$ javac --version
Unable to locate an executable at "/usr/bin/javac/bin/javac" (-1)

这是经过一天忙碌的 MacPorts 和 spack 安装后得出的结果。

如何解决这个问题?


系统信息:

$ uname -a
Darwin ****.***.*** 16.6.0 Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64 x86_64

这是路径设置:

$ echo $PATH
/Users/*******/****/spack/:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin

答案1

这看起来不像是一个问题PATH:您正在调用该java实用程序。问题是前端java可执行文件找不到 Java 安装的其余部分。我认为这是由于JAVA_HOME环境变量造成的Stack Overflow 上的这个帖子确认。检查输出

env | grep '^JAVA'

如果JAVA_HOME设置,则必须将其设置为包含名为bin和 的子目录的目录jre。应该有一个可执行文件$JAVA_HOME/bin/java。通常 的最后一个目录部分JAVA_HOME包含子字符串jdk

检查设置环境变量的位置并更正JAVA_HOME.这可能位于/etc/profile~/.profile、 ``/.bash_profile` 或一些我不知道的 MacPorts 或 sppack 文件中(另请参阅如何在 OS X 上设置环境变量?)。

相关内容