Windows下java、javaw、javaws以及jvm.dll等進(jìn)程的區(qū)別
java ,javaw 和 javaws 的區(qū)別:
首先,所有的這些都是java的啟動裝置,java.exe經(jīng)常使用,當(dāng)使用命令行輸出到window的時候,會有java.exe進(jìn)程,通過任務(wù)管理器可以看到。通常 我們執(zhí)行一些小的java程序的時候會有 java.exe進(jìn)程在運(yùn)行。javaw.exe對于我們也比較特殊,我們也能夠通過任務(wù)管理器看到j(luò)avaw.exe進(jìn)程的運(yùn)行。javaws通常web開啟的時候的進(jìn)程。

jvm.dll
jvm.dll是一個java虛擬機(jī)在windows平臺環(huán)境上的實現(xiàn),也是JRE的一部分,一個C程序能夠使用jvm.dll直接運(yùn)行在jvm上。
java.exe
java.exe是win32控制臺應(yīng)用,它提供了一種幫助,代替使用jvm.dll執(zhí)行java classes 文件,作為一個win32控制臺應(yīng)用,顯然他是和一個控制臺相關(guān)聯(lián),當(dāng)執(zhí)行java classes的時候,它運(yùn)行。
javaw.exe
javaw.exe是相似的和java.exe 是一個win32的GUI應(yīng)用,應(yīng)用提供自己的GUI窗口,不啟用控制臺。
因此我們想運(yùn)行一個GUI程序不需要命令控制臺。
下面是一個例子:
package javaw;
import javax.swing.*;
public class HelloWorldSwing {
private static void createAndShowGUI() {
JFrame jFrame = new JFrame("HelloWorld Swing");
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel helloLabel = new JLabel("Hello World!");
jFrame.getContentPane().add(helloLabel);
jFrame.pack();
jFrame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
上面是一個GUI程序,按照如下方式運(yùn)行就是在控制臺上運(yùn)行:
java -classpath . javaw.HelloWorldSwing
解釋:其中 -classpath . 代表把classpath 的路徑設(shè)置為當(dāng)前目錄。
運(yùn)行后查看任務(wù)管理器出現(xiàn)了 java.exe進(jìn)程 ------ 因為這是通過控制臺運(yùn)行的。
圖如下:

如果在eclipse中直接運(yùn)行:運(yùn)行后 查看任務(wù)管理器出現(xiàn) javaw.exe進(jìn)程 --因為沒有通過控制臺輸出運(yùn)行。
圖如下:

如果用javaw通過命令行運(yùn)行也是如上圖所示:

注:
javaw -classpath . javaw.HelloWorldSwing 啟動的進(jìn)程為javaw.exe
java -classpath . javaw.HelloWorldSwing 啟動的進(jìn)程為java.exe
java.exe 和 javaw.exe兩種運(yùn)行方式的區(qū)別還有一點 java運(yùn)行GUI以后堵塞在那里直到窗口關(guān)閉。
javaw運(yùn)行GUI后 直接就可以進(jìn)行下一條命令的運(yùn)行了。
javaws.exe
javaws.exe進(jìn)程適用于啟動通過web 配置的程序,簡而言之就是在web應(yīng)用程序中應(yīng)用。
總結(jié):
java.exe用于啟動window console 控制臺程序
javaw.exe用于啟動 GUI程序
javaws.exe用于web程序。
jvm.dll就是java虛擬機(jī)規(guī)范在windows平臺上的一種實現(xiàn)
相關(guān)文章
Spring Security實現(xiàn)不同接口安全策略方法詳解
這篇文章主要介紹了Spring Security實現(xiàn)不同接口安全策略方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-09-09
Java中for(;;)和while(true)的區(qū)別
這篇文章主要介紹了 Java中for(;;)和while(true)的區(qū)別,文章圍繞for(;;)和while(true)的相關(guān)自來哦展開詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對大家有所幫助2021-11-11
詳解Java中的reactive stream協(xié)議
Stream大家應(yīng)該都很熟悉了,java8中為所有的集合類都引入了Stream的概念。優(yōu)雅的鏈?zhǔn)讲僮?,流式處理邏輯,相信用過的人都會愛不釋手。本文將詳細(xì)介紹Java中的reactive stream協(xié)議。2021-06-06
Java使用itextpdf實現(xiàn)Excel轉(zhuǎn)PDF
這篇文章主要為大家詳細(xì)介紹了Java如何使用itextpdf實現(xiàn)Excel轉(zhuǎn)PDF,并且支持xlsx和xls兩種格,文中的示例代碼講解詳細(xì),希望對大家有所幫助2024-01-01

