eclipse中新建Java工程的三個JRE選項區別


轉載:http://blog.csdn.net/wdjhzw/article/details/42086615

 

本文的主角就是這個十分令人糾結地方,至少令我這個初學者十分糾結…

 

 

先來看看官方的解釋(鏈接

 

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 Environmentspreference page.

 

 

其實官方的解釋客觀來講應該是解釋清楚了的,但是他在解釋的同時,又帶出了其余的陌生概念,就是這個compiler compliance。那就先把這個compiler compliance的概念搞清楚。

 

首先,設置他的地方在這里 Java > Compiler 

可以看到,設置他的參數描述是 Compiler compliance level,直譯是“編譯器服從的等級”。其后的下拉菜單可以選擇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。如圖。 

 

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

 

1.先說Use default JRE:

你會注意到,我解釋compiler compliance時的最后那張圖上,有一個Configure…跳轉。

他會跳轉到這里 Java > Installed JREs 

在這里,你可以配置你電腦中的JRE,只要你想,從1.1到1.7,當然現在最新有1.8,所有版本的JRE你都可以安裝,並通過旁邊的Add按鈕添加到這里。注意這里是JRE,之所以Name中有JDK,是因為這個JRE是JDK附帶的,不是獨立安裝的。JRE可以隨便你裝多少,但JDK一個就夠了。

每個JRE前面都有一個復選框,雖說是復選框,但只能有一個被選中,而被選中的就會作為默認JRE。

所以,Use default JRE的作用,就是在你建立工程時,如果選中,就將這個默認JRE作為你構建用的JRE。就像我最開始的那張圖上一樣,並給出了提示“currently 'jdk1.7.0_71'”。

 

2.然后是Use project specific JRE:

其實這個選項跟Use default JRE是互補的。之前說道,你可以安裝很多版本的JRE,選擇Use default JRE就會指定默認JRE為你構建用的JRE,但如果你想選擇其它你所安裝的JRE的話,就可以選中這個Use project specific JRE,在其后的下拉菜單中,你就可以選擇你想使用的JRE。

同時,compiler compliance也會被設置為對應JRE版本的編譯級別。

 

3.最后是Use an execution environment JRE:

這個選項是最令人糾結的。你點開其后的下拉菜單,會看到這樣一幕。

它提供了eclipse支持的所有運行環境選項(只是選項而已)。

按照官方的解釋,選中該選項,你的compiler compliance將會被設置為對應你所選的JRE版本。

比如,我電腦上只有JRE1.7,如果我選中Use an execution environment JRE,並選擇了“JavaSE-1.6”,那么就會有這樣的提示。

即是說,默認的compiler compliance編譯級別為1.7,即我的JDK的JRE版本,新的工程將會被指定為1.6的編譯級別。

這樣看起來好像跟我之前講的自定義compiler compliance如出一轍,而且好像解決了那個需要對應低版本的JRE的警告問題。

但是,當你建立完工程,會看到Problems視圖里有一個警告。

嗯,沒錯,你仍然需要安裝對應版本的JRE才行。

不過,你寫個“Hello World!”還是可以運行的。但是最Perfect match的選擇是裝一個對應版本的JRE,這里的Perfect match,出自這里。

這里就是設置那一堆JRE選項的兼容JRE。如果你安裝了多個版本的JRE,在右邊的Compatible JREs列表里,會列出左邊Execution Environment對應的兼容JRE。

我裝過1.7和1.8版本的JDK,自然有對應版本的JRE,高版本兼容低版本,所以所有的列表中都有這兩個選項。但對於JavaSE-1.7來說,最Perfect match的當然是對應自己版本的JRE。而且他版本,除非你也安裝了對應的JRE,否則找不到那個Perfect match JRE。

同時,如果你想指定Execution Environment中某個JRE的默認兼容JRE,那就在右邊的那個JRE前面勾選復選框。

 

所以,總結一下,就是:

1.如果電腦中只有一個版本的JRE,因為你是初學者,初級開發者,或者你的開發只需用一個版本的JRE,那么你就選Use default JRE:就可以了。因為你的eclipse的啟動使用就是這個JRE,它會把這個JRE配置為默認的JRE,而通常情況下這個JRE就是你JDK中的JRE,一切都是這么順理成章。

2.如果電腦中有多個版本的JRE,就可以使用Use project specific JRE:來選擇你想使用JRE。這個時候因為你的JDK和JRE的版本可能不對應了,所以compiler compliance會被調整為你所選的JRE的版本。

3.至於Use an execution environment JRE:這個選項,如果你要選的版本的JRE已經安裝了,那么你就可以安心的選擇了。否則你一定逃不過這個警告

其實Use project specific JRE:Use an execution environment JRE:這兩個選項都是幫助你選擇不同的JRE,前者是讓你從已有的JRE中選擇,所以你有什么他就給你提供什么,比較靠譜;而后者是讓你從他可以提供的JRE中選擇,他可以提供什么,你就可以選什么,但選完之后你有沒有對應JRE那就是另一回事了。

 

最后再說一點。我之前裝過1.7和1.8版本的JDK,所以有兩個版本的JRE。但問題是我用的eclipse最高支持到1.7版本的JRE,所以就算我用1.8的JRE來創建工程,他的compiler compliance也最高能調整到1.7,1.8中的新特性是用不了的。所以1.8就只能卸了,等以后用新的eclipse來支持1.8吧(網上有教程裝插件可以支持1.8,不想折騰了:-P)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM