您可以根據需要安裝儘可能多的Java版本。
這將是危險的設置修改本地環境變量,例如JAVA_HOME
,因爲它可能會參考現有的Java安裝。
這與所謂的「依賴平臺的問題」無關。 ;)
因爲腳本可能依賴於JAVA_HOME
來自行啓動,所以這對於新的Java安裝來修改JAVA_HOME
會造成災難性的影響:所有這些腳本將突然被一個新的可能不兼容的JVM啓動。
另外,通過在您的路徑中設置$JAVA_HOME/bin
或%JAVA_HOME%/bin
,您可以動態地將JAVA_HOME
更改爲想要使用的任何Java版本,而無需使用PATH變量。
Michael Borgwardt在評論做出了有趣的後續的問題
不過,這並不能解釋爲什麼當它不預先設定爲所有的安裝程序不設置JAVA_HOME。
答案很簡單:
的設置無法知道如果腳本已經依賴於JAVA_HOME
或不。
含義:一些腳本可以測試JAVA_HOME
的值,如果沒有設置,請參考另一個JVM安裝在其他地方(並且不要忘記通過「install」,只能引用「copied」:JDK/JRE是並非始終由安裝程序安裝)
如果您設置了JAVA_HOME
,那可能會中斷某些腳本的默認行爲。
因爲不想打擾這取決於的環境變量未設置聲音毫無意義的偏執我假想腳本 - 如果一個腳本這樣做,那麼它顯然想用不同的JVM在安裝時一個 - 沒有理由避免這一點。
嗯......甜。對於每天處理大量部署問題(適用於我店內部應用),我可以向你保證:這是非常理智的「偏執」 待人有。
當您部署到(非常)大量的用戶時,您不想對他們的平臺和配置做任何假設。 「明顯地想要」是一個我不敢做的假設(或者我把我的電話重定向到你的;)並且你處理憤怒的電話)。例如,我們有許多腳本可以從Sun的1.4.2 JVM(未在開發平臺上設置JAVA_HOME,在腳本中直接設置默認路徑)或JRockit的1.4.2(設置爲JAVA_HOME
)它是集成,預生產和生產平臺的預期目標)。
但是我們定期安裝新的JDK1.6.x,因爲我們使用它來啓動eclipse。
假設那些腳本想要他們的JAVA_HOME
設置......並且沒有什麼工作了。
...爲了這Robert Grant使得這個在現場評論家:
你描述需要一個特定的版本,但還是來看看全球JAVA_HOME腳本。這只是劇烈思考的腳本。
雖然這未必是真實的,這也說明正是我的觀點:
「你不想做任何假設」:在他們的平臺/設置任何前提,並沒有假定其「最佳做法」。
前者可能聽起來偏執狂,後者是普通常識:認爲你的產品(這裏是一個JDK設置)不會破壞用戶環境中的任何內容,因爲用戶已經「正確」地考慮了他的腳本......會是瘋。
GvS提示:
,或者可能只是有選擇這樣做,默認情況下禁用
這將意味着另一個選項,在設置屏幕,包括選項,應該要被用戶仔細檢查,哪些可能會有意想不到的後果,即使用戶選擇它時也會認爲他知道自己在做什麼......
這根本不值得。
因爲Java不需要它。 – EJP 2017-01-07 11:40:00