簡體   English   中英

關於ubuntu中的Java和環境變量的一個簡單問題

[英]An easy question about java and environment variables in ubuntu

我已經安裝了帶有Java的Ubuntu 10.10。 我可以從任何文件夾執行Java命令。 我以為那可能是因為我設置了Java Classpath。 但是既未設置JAVA_HOME也未設置CLASSPATH。

如果查看/ etc / environment內容,則可以看到PATH設置為/ usr / bin /(以及其他)。 由於“ which java ”返回/ usr / bin / java,這是我可以從任何地方執行Java的原因嗎? 如果沒有,為什么呢?

您可以執行Java,因為該命令位於路徑上。

echo $PATH

將顯示搜索目錄,查找特定程序的順序。 由於/usr/bin在路徑上,因此當您鍵入java ,它將最終查看/usr/bin/java 請注意,在許多系統中,這是一個符號鏈接(指向另一個文件的文件),因此/usr/bin/java通常指向/etc/alternatives/java (這也是指向實際可執行文件的符號鏈接)。

環境變量JAVA_HOME起作用的地方是在工具和程序中檢查JAVA_HOME並對其執行操作,而不是依賴於路徑。 在大多數現代Linux系統中,替代子系統完成的工作取代了早期的(問題更大的) JAVA_HOME技術。 就是說,如果您遇到需要JAVA_HOME的工具,則可能仍要設置它。

JAVA_HOME之所以不那么受歡迎的一個原因是,要訪問JAVA_HOME您需要運行一個shell,而不是每個人都希望將每個Java項目都包裝在shell命令中。

是的,如果路徑中列出的文件夾中有Java二進制文件(或指向它的鏈接),那么您可以執行Java而無需指定其路徑(例如/usr/local/java/latest/bin/java -jar x.jar )JAVA_HOME和CLASSPATH與系統路徑無關。 JAVA_HOME允許其他軟件(或腳本)知道在哪里尋找Java安裝。 CLASSPATH告訴Java在哪里尋找類(編譯.java文件產生的.class文件)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM