2016-11-09 52 views
0

您可以在Java項目中的任何位置定義應該拾取哪個JRE/JDK版本?您可以定義您的Java Web應用程序應使用哪個Java版本

在eclipse中,當我選擇項目>>右鍵點擊>> Java編譯器,並檢查「編譯器符合級別」,我看到一個特定的版本標記(1.7,1.6等)。這是如何選擇的?

或者這完全取決於您的服務器(tomcat)使用的是JDK/JRE運行時版本?

感謝

回答

1

簡短回答: 不,你不能確定將在運行時「拾取」的java版本。

更多答案: 有三個Java版本在構建和運行使用Java的東西時發揮作用。

  1. 來源版本。這是項目符合的Java版本。在編譯時,你可以傳遞一個「源代碼」(嘗試谷歌搜索「set java source level」)參數來識別這個版本。在實踐中,我不知道這個的價值。
  2. 目標版本。這是編譯結果將符合的Java版本。與「源版本」一樣,您可以將其作爲參數傳遞給編譯器。
  3. 運行時版本。這是運行編譯的java(字節代碼)的主機上實際安裝的java版本。你不能在編譯時配置它,因爲這是運行時主機上安裝的東西。

有一些注意事項。

  1. 源版本號和目標版本號必須等於或小於實際編譯java源代碼的java編譯器的版本號。例如,如果使用1.8版本的java編譯器進行編譯,則可以選擇目標版本1.7。如果使用版本1.7的Java編譯器進行編譯,則不能選擇目標版本1.8。
  2. 可以在主機上安裝多個版本的java。由於tomcat將使用的Java版本是運行tomcat的java版本,因此無法選擇使用哪個版本的Java Tomcat來執行應用程序。
0

這是選擇在一個下拉菜單,你可以將其設置爲任何你想。但是,您必須在系統/服務器上安裝該版本才能使項目正常工作。如果你轉到Window-> Preferences-> Java-> Installed JRE,你可以看到你已經安裝了哪些JRE。在eclipse中創建新的服務器元素時,您還可以設置運行時的JRE,並確保它與您的項目版本相匹配。

+0

當我部署我的應用程序到遠程服務器 - 以及遠程服務器不支持Java 1.8,1.7和1.6 - (?哪些配置,web.xml中,POM)我在哪裏告訴服務器,我的應用程序就只在Java 1.7上運行?謝謝。 – Tintin

+0

您不告訴服務器,服務器有自己的運行時,並且該運行時的JRE必須匹配。它只會運行1.8,1.7或1.6中的一個,而不是全部三個。如果您的項目是1.7,您將需要確保服務器運行時JRE也是1.7 – holtc

相關問題