面試官:伺服器安裝JDK還是JRE?可以只安裝JRE嗎?

walkinger發表於2019-08-30

前些日子有網友面試時被問到如題所示的問題,由於他之前沒有準備到這些最最基礎的知識,沒有考慮過這個問題,所以被問到時竟一臉萌幣,回答的不是很好。這道題主要考的是對 Java 基礎知識的瞭解,有些同學可能已經忘了。所以現在我們一起來分析下。

JDK和JRE是什麼?

在回答這個問題之前我們先來看看什麼是JDK什麼是JRE?以及JDK和JRE的關係。

我們看一下來自百度百科的解釋:

JDK是 Java 語言的軟體開發工具包,主要用於移動裝置、嵌入式裝置上的java應用程式。JDK是整個java開發的核心,它包含了JAVA的執行環境(JVM+Java系統類庫)和JAVA工具。--百度百科 JRE是Java Runtime Environment縮寫,指Java執行環境,是Sun的產品。執行JAVA程式所必須的環境的集合,包含JVM標準實現及Java核心類庫。--百度百科

《深入理解Java虛擬機器:JVM高階特性與最佳實踐(第2版)》:

我們可以把Java程式設計語言、Java虛擬機器、Java API 類庫這三部分統稱為 JDK(Java Development Kit),JDK 是用於支援 Java 程式開發的最小環境...另外,可以把 Java API 類庫中的 Java SE API 子集和 Java 虛擬機器這兩部分統稱為 JRE(Java Runtime Environment),JRE 是支援 Java 程式執行的標準環境。-《深入理解Java虛擬機器:JVM高階特性與最佳實踐(第2版)》

書中同樣提到了Java 技術體系所包含的內容及 JDK 和 JRE 所涵蓋範圍:

面試官:伺服器安裝JDK還是JRE?可以只安裝JRE嗎?
(網圖,侵刪)

二者的關係

根據如上所說,我們可以總結出如下圖所示的 JDK 和 JRE 的關係圖:

面試官:伺服器安裝JDK還是JRE?可以只安裝JRE嗎?
也就是說JDK包含了JRE,這一點我們可以證實,在安裝JDK的目錄下找到JRE的資料夾:

面試官:伺服器安裝JDK還是JRE?可以只安裝JRE嗎?
JDK(Java Development Kit)是我們學習 Java 首先要安裝的軟體,值得注意的是 JDK 安裝完成之後,安裝嚮導會詢問你是否安裝 JRE(Java Runtime Environment),還要不要安裝呢?知道 JDK 和 JRE 是什麼關係後回答這個問題就不難了吧。

也就是說,當你安裝 JDK 完成後已經預設安裝了 JRE ,因為安裝完 JDK 肯定是要開發的吧,開發就要執行 Java 程式,所以 JDK 包含了 Java 的執行環境 JRE。如果你只是單純的要執行 Java 程式而不進行開發、除錯等,那麼就只需要安裝 JRE 就行了。

所以上文提到的問題,對於開發人員來說安裝完JDK後就不需要再安裝JRE了。

伺服器上是否只安裝JRE就可以了?

另外一個問題,既然如此,那麼在伺服器上是否只安裝JRE就可以了?

理論上是可以的,但是有前提條件。

伺服器上只安裝JRE的前提:

  • 釋出到伺服器上時所有檔案都是編譯好的檔案,包括JSP檔案

  • 後期不在伺服器上直接修改(因為導致修改後的檔案未重新編譯)

如果部署的專案都是編譯後重新部署,不在伺服器上直接修改的話是可以只安裝 JRE 的。

注意:如果存在未編譯的 Java 原始檔,或者在伺服器上修改原始檔,伺服器就需要安裝 JDK。

在伺服器上安裝JDK的好處:

  • 可以編譯java檔案,方便後期維護

  • 保證JSP檔案修改後穩定執行

綜合考慮,為避免以後這樣那樣的麻煩事發生,伺服器上還是安裝JDK吧!畢竟專案後期維護才是主要的事情。

有了以上的分析,相信面試官再問你這樣的問題你該知道怎麼回答了吧。


原文連結:zhuanlan.zhihu.com/p/79527556

相關文章