或許,我們從來沒好好玩過Eclipse(六)——Eclipse中新建Java工程的三個JRE選項區別

在配置eclispe的編譯與運行環境時,我徹底懵逼了,最後也只能查找一些資料,果然讓我發現了一篇好文——eclipse中新建Java工程的三個JRE選項區別,作者:君中之王。現摘抄如下,須知摘抄也是一種學習。
本文的主角就是這個十分令人糾結的地方,至少令我這個初學者十分糾結…
在這裏插入圖片描述
先來看看官方的解釋(鏈接

  • Use default JRE:
    When selected, the New Java Project Wizard creates a new Java project which uses the workspace default JRE. The default JRE can be configured on the Java > Installed JREs preference page.
    The project will also use the default compiler compliance which can be configured on the Java > Compiler preference page.
    Click on Configure default… to configure the default JRE and compiler compliance.
  • Use project specific JRE:
    When selected, you can explicitly specify the JRE to be used for the new Java project. The new project will use a compiler compliance which matches the version of the selected JRE.
  • Use an execution environment JRE:
    When selected, you can specify an execution environment to be used for the new Java project. The new project will use a compiler compliance which fits best the selected execution environment.
    Execution environments can be configured on the Java > Installed JREs > Execution Environments preference page.

英文太爛,藉助有道翻譯爲:

  • Use default JRE:
    選中時,新的Java項目嚮導(Wizard)將創建一個使用工作區缺省的JRE的新的Java項目。默認的JRE可以在Java > Installed JREs的首選項頁上配置。
    該項目還將使用默認的編譯器,編譯器遵從在Java > Compiler首選項頁上的配置。
    點擊**Configure default…**配置默認的JRE和編譯器遵從(compliance翻譯爲遵從,什麼JB意思,我覺得應該是規則更好吧!)
  • Use project specific JRE:
    選中時,你可以爲新的Java項目顯式地指定要使用的JRE。新的項目將會使用一個匹配所選擇的JRE版本的compiler compliance(媽的,就翻譯爲編譯器遵從吧!) 。
  • Use an execution environment JRE
    選中時,你可以爲新的Java項目指定一個要使用的執行環境。新項目將使用的compiler compliance最適合選擇的執行環境。
    執行環境可以在Java > Installed JREs > Execution Environments的首選項頁面中配置。

其實官方的解釋客觀來講應該是解釋清楚了的,但是他在解釋的同時,又帶出了其餘的陌生概念,就是這個compiler compliance。那就先把這個compiler compliance的概念搞清楚。
首先,設置他的地方在這裏Java > Compiler
在這裏插入圖片描述
可以看到,設置他的參數描述是Compiler compliance level,直譯是“編譯器服從(compliance)的等級”。其後的下拉菜單可以選擇JDK的版本。其實,這個參數是設置你的class的運行等級,即你的程序是以哪種版本的JDK進行編譯,所以得到的class至少要在這個版本的JRE上運行才行。
舉個例子:
比如你的JDK版本是1.7,默認情況下你的Compiler compliance level應該是1.7,因爲JRE本來就是爲對應版本的JDK開發的程序所服務的。新的JDK提供了更多的功能,而這些功能都要有對應的JRE(至少是對應的JRE)來提供運行環境。所以你的JDK的版本要大於等於Compiler compliance level的版本才行。
之所以提供了這個參數選項,是考慮到將當前編寫的程序放到低版本的JRE環境中運行的這種狀況。同時,爲了能夠順利保證可以在低版本的JRE上運行,你要時刻保證不能使用高版本的JDK中提供的API,道理顯而易見。
最後,你必須安裝對應的低版本的JRE來運行這個經過降級編譯的程序,否則他提示你安裝對應版本的JRE。如圖:
在這裏插入圖片描述
結論:

  • 高版本的java能運行低版本的javac編譯的程序;
  • 低版本的java不能運行高版本的javac編譯的程序。

compiler compliance介紹完了,下面就來說說建工程時這三個JRE選項具體要怎麼對待。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章