java和 javaw 及 javaws的區(qū)別解析
java ,javaw 和 javaws 的區(qū)別:
首先,所有的這些都是java的啟動(dòng)裝置,java.exe經(jīng)常使用,當(dāng)使用命令行輸出到window的時(shí)候,會(huì)有java.exe進(jìn)程,通過任務(wù)管理器可以看到。通常 我們執(zhí)行一些小的java程序的時(shí)候會(huì)有 java.exe進(jìn)程在運(yùn)行。javaw.exe對(duì)于我們也比較特殊,我們也能夠通過任務(wù)管理器看到j(luò)avaw.exe進(jìn)程的運(yùn)行。javaws通常web開啟的時(shí)候的進(jìn)程。
jvm.dll
jvm.dll是一個(gè)java虛擬機(jī)在windows平臺(tái)環(huán)境上的實(shí)現(xiàn),也是JRE的一部分,一個(gè)C程序能夠使用jvm.dll直接運(yùn)行在jvm上。
java.exe
java.exe是win32控制臺(tái)應(yīng)用,它提供了一種幫助,代替使用jvm.dll執(zhí)行java classes 文件,作為一個(gè)win32控制臺(tái)應(yīng)用,顯然他是和一個(gè)控制臺(tái)相關(guān)聯(lián),當(dāng)執(zhí)行java classes的時(shí)候,它運(yùn)行。
javaw.exe
javaw.exe是相似的和java.exe 是一個(gè)win32的GUI應(yīng)用,應(yīng)用提供自己的GUI窗口,不啟用控制臺(tái)。
因此我們想運(yùn)行一個(gè)GUI程序不需要命令控制臺(tái)。
下面是一個(gè)例子:
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(); } }); } }
上面是一個(gè)GUI程序,按照如下方式運(yùn)行就是在控制臺(tái)上運(yùn)行:
java -classpath . javaw.HelloWorldSwing
解釋:其中 -classpath . 代表把classpath 的路徑設(shè)置為當(dāng)前目錄。
運(yùn)行后查看任務(wù)管理器出現(xiàn)了 java.exe進(jìn)程 ------ 因?yàn)檫@是通過控制臺(tái)運(yùn)行的。
圖如下:
如果在eclipse中直接運(yùn)行:運(yùn)行后 查看任務(wù)管理器出現(xiàn) javaw.exe進(jìn)程 --因?yàn)闆]有通過控制臺(tái)輸出運(yùn)行。
圖如下:
如果用javaw通過命令行運(yùn)行也是如上圖所示:
注: javaw -classpath . javaw.HelloWorldSwing 啟動(dòng)的進(jìn)程為javaw.exe
java -classpath . javaw.HelloWorldSwing 啟動(dòng)的進(jìn)程為java.exe
java.exe 和 javaw.exe兩種運(yùn)行方式的區(qū)別還有一點(diǎn) java運(yùn)行GUI以后堵塞在那里直到窗口關(guān)閉。
javaw運(yùn)行GUI后 直接就可以進(jìn)行下一條命令的運(yùn)行了。
javaws.exe
javaws.exe進(jìn)程適用于啟動(dòng)通過web 配置的程序,簡而言之就是在web應(yīng)用程序中應(yīng)用。
總結(jié):
java.exe用于啟動(dòng)window console 控制臺(tái)程序
javaw.exe用于啟動(dòng) GUI程序
javaws.exe用于web程序。
jvm.dll就是java虛擬機(jī)規(guī)范在windows平臺(tái)上的一種實(shí)現(xiàn)
注:原文地址:http://javapapers.com/core-java/java-vs-javaw-vs-javaws/
總結(jié)
到此這篇關(guān)于java和 javaw 及 javaws的區(qū)別解析的文章就介紹到這了,更多相關(guān)java和 javaw 及 javaws的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題
這篇文章主要給大家解決了IDEA開發(fā)工具右側(cè)沒有Maven工具欄的問題,文中有詳細(xì)的解決步驟,如果有遇到一樣問題的小伙伴,可以參考閱讀本文2023-09-09Java通過SSM完成水果商城批發(fā)平臺(tái)流程
這是一個(gè)使用了java+SSM開發(fā)的網(wǎng)上水果商城批發(fā)平臺(tái),是一個(gè)實(shí)戰(zhàn)小練習(xí),具有水果商城批發(fā)該有的所有功能,感興趣的朋友快來看看吧2022-06-06Spring boot監(jiān)控Actuator-Admin實(shí)現(xiàn)過程詳解
這篇文章主要介紹了Spring boot監(jiān)控Actuator-Admin實(shí)現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09springboot jpaRepository為何一定要對(duì)Entity序列化
這篇文章主要介紹了springboot jpaRepository為何一定要對(duì)Entity序列化,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12Spring中的底層架構(gòu)核心概念類型轉(zhuǎn)換器詳解
這篇文章主要介紹了Spring中的底層架構(gòu)核心概念類型轉(zhuǎn)換器詳解,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12SpringMVC Cron定時(shí)器Demo常見問題解決方案
這篇文章主要介紹了SpringMVC Cron定時(shí)器Demo常見問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Security中的@PostAuthorize、@PreFilter和@PostFilter詳解
這篇文章主要介紹了Security中的@PostAuthorize、@PreFilter和@PostFilter詳解,@PostAuthorize是在方法調(diào)用完成后進(jìn)行權(quán)限檢查,它不能控制方法是否能被調(diào)用,只能在方法調(diào)用完成后檢查權(quán)限決定是否要拋出AccessDeniedException,需要的朋友可以參考下2023-11-11