2013-07-02 51 views
0

有沒有像系統調用那樣的事情,告訴您是否在「裸」JRE而非JDK-packed上運行? (缺少ClassNotFound異常)。

基本問題確實存在,但Google/SO中沒有任何東西冒出來。Java運行時確定JDK功能是否可用

+4

JRE是運行時,而不是JDK,代碼總是在JRE上運行。 – kosa

+0

例如,如果你需要編譯內容,必須有方法告訴他們appart。 – MonoThreaded

+2

當你無法知道你在跑哪一個,那麼它不應該有所作爲,對吧?你實際上**需要了解你的環境?如果你能夠編譯課程?如果給定的命令行工具可用?它與瀏覽器嗅探相似:嗅探**功能**,而不是應該發佈該功能的**軟件**(因爲功能集可以更改)。 –

回答

0

一切運行在JRE上,JDK指的是允許Java開發的工具集,比如javac編譯器,或者visualvm應用程序來查看關於運行虛擬機的信息。沒有像JDK上運行那樣的東西

如果您需要動態地編譯東西,則啓動另一個調用javac的進程。或者你使用Eclipse的eclipse編譯器,這是一個編譯java代碼字節碼的jar文件。

1

顯然JRE(Java運行環境)是Java的運行時環境。

JRE

的Java Runtime Environment(JRE)包含JVM,圖書館和其他 支持文件。它不包含任何開發工具,如 編譯器,調試器等。實際上,JVM運行該程序,並且它使用JRE中提供的類庫和其他支持文件。如果 想要運行任何java程序,則需要在 系統中安裝JRE。

JDK

的Java開發工具包(JDK)包含開發Java程序,與 JRE一起運行程序所需的工具。這些工具包括編譯器(javac.exe), Java應用程序啓動器(java.exe的,jawaw.exe),小程序查看等

需要JDK僅如果要編寫程序,並編譯它們。對於運行Java程序,JRE就足夠了。

+0

爲了清晰起見,我重新提出了這個問題 – MonoThreaded

相關問題