2017-11-18 69 views
1

我想,標題是自描述性的。我就加我的進口,如果該事項:僅僅是一個「javaw.exe」足以在未安裝JRE的Windows機器上運行簡單的Java應用程序?

import javax.sound.sampled.*; 
import javax.swing.*; 
import java.awt.*; 
import java.io.*; 
import java.lang.management.ManagementFactory; 
import java.lang.management.RuntimeMXBean; 
import java.text.SimpleDateFormat; 
import java.util.*; 
import java.util.concurrent.TimeUnit; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

所以將只是一個單一的javaw進程可執行足以運行在Windows機器上這個程序,如果已經安裝了JRE沒有?

+1

不,它至少會錯過所需的本地庫(.dll/.so) – Aaron

+1

@Aaron和JARs ofc。 – m0skit0

+0

好的,謝謝!在這裏問一個問題比在我的電腦上卸載JRE並自己嘗試它更容易;) – Enirsa

回答

3

Java運行時不僅僅是一個可執行的二進制文件。

它包含導入語句所使用的所有編譯類。 。和其他各種二進制文件(如DLL},也

所以,簡單的答案是:沒有

Java9即將推出新的工具,將允許您創建一個二進制神器只包含那些類,是否需要你的應用程序或準確地說:你的應用程序需要的那些模塊 但是,這仍然意味着你必須採取一些措施來利用這一點

+0

這就是我所懷疑的。謝謝! – Enirsa

+0

@GhostCat如果您指出的新工具是使用應用程序類數據共享,那麼它將是Java10或更高版本。 – nullpointer

+0

我認爲它被稱爲jlink。它依賴於模塊定義。 – GhostCat

0

不,你必須安裝JRE以及您可以配置系統變量PATH,但這是可選的,但增加了便利性。

+1

中所述不需要*配置PATH,它只是更方便。 – Aaron

1

您不需要安裝JRE,您可以在應用程序內部發送私人應用程序(無需在客戶端計算機上安裝JRE)。但javaw.exe是不夠的。請參閱What are the differences between private jre and public jre?

此外,還有一些安裝程序可以將您的應用程序和JRE打包到可執行文件中,並使其看起來好像它是單個正在運行的文件(而不打開它) - 它們映射文件內的文件系統調用)。如果我記得InstallAnywhere可以做到這一點,但可能還有其他安裝程序可以。

+1

謝謝,夥計。我已經發現了Launch4j,它的工作就像魅力一樣。 – Enirsa

+0

感謝提到http://launch4j.sourceforge.net/ - 沒有趕上那一個。似乎它可以在任何平臺上用於構建可執行特定JRE的Windows可執行文件或將其捆綁在一起。猜猜那些將是相當大的EXE,但通過其他評論中提到的jlink工具(僅保留您需要的Java VM模塊),它確實具有潛力 –

相關問題