Osx

病理學:java不再工作

  • July 21, 2017

我的路徑存在一些問題,這會破壞我的 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

這是PATH設置:

$ 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

這看起來不是問題PATH:您正在呼叫該java實用程序。問題是前端java執行檔找不到 Java 安裝的其餘部分。我認為這是由於JAVA_HOME環境變數造成的,Stack Overflow 上的這個執行緒證實了這一點。檢查輸出

env | grep '^JAVA'

如果已設置,則必須將其設置為包含名為和JAVA_HOME的子目錄的目錄。應該有一個執行檔。通常,最後一個目錄組件包含 substring 。bin``jre``$JAVA_HOME/bin/java``JAVA_HOME``jdk

查看設置環境變數的位置並更正JAVA_HOME. 這可能在/etc/profile, ~/.profile, ``/.bash_profile` 或一些我不知道的 MacPorts 或 spack 文件中(另請參閱如何在 OS X 上設置環境變數?)。

引用自:https://unix.stackexchange.com/questions/379849