
你好我有一個問題我的linux終端顯示bash:java_home:沒有這樣的檔案或目錄,當我輸入echo $ JAVA_HOME時我得到/ usr / lib / jvm / java-8-openjdk-amd64並且echo $ PATH顯示/ usr / lib /jvm/java-8-openjdk-amd64/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr /sbin:/ usr/bin:/sbin:/bin:/usr/games:/usr/local/games。當我編寫 sudo apt-get install 時,我得到 JAVA_HOME:not find 我找不到問題,我正在使用 kubuntu,下面您可以在我的主目錄中看到我的終端和 .profile 檔案。也許有人知道如何解決它。先感謝您。
答案1
關鍵的錯誤訊息是:
/usr/sbin/update-info-dir: 2: /etc/environment: JAVA_HOME: not found
這表示錯誤訊息來自/usr/sbin/update-info-dir
,這是一個可以作為軟體包安裝/刪除操作的一部分執行的腳本。它正在讀取(獲取)/etc/environment
文件並在其中遇到錯誤。
/etc/environment
應該只包含 POSIX-shell 風格的環境變數賦值,即
VARIABLE_NAME=value
必須具備等號之前或之後沒有空格:如果有空格,變數名稱將被解釋為 shell 命令,並且 shell 將嘗試執行它。
我猜你的/etc/environment
文件可能包含類似的內容
JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64
$JAVA_HOME
因此,讀取檔案的 shell不會將路徑名指派給環境變量,而是將其解釋為要執行的 shell 命令。它將嘗試執行一個JAVA_HOME
帶有兩個參數=
和 的字面命名命令/usr/lib/jvm/java-8-openjdk-amd64
。由於名為的命令JAVA_HOME
不存在,這將導致錯誤訊息。
編輯/etc/environment
檔案並刪除環境變數分配中等號之前/之後的所有空格。
答案2
sudo 不會維護您的環境變數。嘗試
sudo JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 apt-get ...
如果您的 sudo 配置不允許這樣做,請嘗試sudo -i
按照JAVA_HOME=... apt-get...
上面的方法操作