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

來源:互聯網
上載者:User

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



先來看看官方的解釋(連結)

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)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.