java和 javaw 及 javaws的區(qū)別解析
java ,javaw 和 javaws 的區(qū)別:
首先,所有的這些都是java的啟動裝置,java.exe經(jīng)常使用,當使用命令行輸出到window的時候,會有java.exe進程,通過任務管理器可以看到。通常 我們執(zhí)行一些小的java程序的時候會有 java.exe進程在運行。javaw.exe對于我們也比較特殊,我們也能夠通過任務管理器看到javaw.exe進程的運行。javaws通常web開啟的時候的進程。
jvm.dll
jvm.dll是一個java虛擬機在windows平臺環(huán)境上的實現(xiàn),也是JRE的一部分,一個C程序能夠使用jvm.dll直接運行在jvm上。
java.exe
java.exe是win32控制臺應用,它提供了一種幫助,代替使用jvm.dll執(zhí)行java classes 文件,作為一個win32控制臺應用,顯然他是和一個控制臺相關聯(lián),當執(zhí)行java classes的時候,它運行。
javaw.exe
javaw.exe是相似的和java.exe 是一個win32的GUI應用,應用提供自己的GUI窗口,不啟用控制臺。
因此我們想運行一個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程序,按照如下方式運行就是在控制臺上運行:
java -classpath . javaw.HelloWorldSwing
解釋:其中 -classpath . 代表把classpath 的路徑設置為當前目錄。
運行后查看任務管理器出現(xiàn)了 java.exe進程 ------ 因為這是通過控制臺運行的。
圖如下:
如果在eclipse中直接運行:運行后 查看任務管理器出現(xiàn) javaw.exe進程 --因為沒有通過控制臺輸出運行。
圖如下:
如果用javaw通過命令行運行也是如上圖所示:
注: javaw -classpath . javaw.HelloWorldSwing 啟動的進程為javaw.exe
java -classpath . javaw.HelloWorldSwing 啟動的進程為java.exe
java.exe 和 javaw.exe兩種運行方式的區(qū)別還有一點 java運行GUI以后堵塞在那里直到窗口關閉。
javaw運行GUI后 直接就可以進行下一條命令的運行了。
javaws.exe
javaws.exe進程適用于啟動通過web 配置的程序,簡而言之就是在web應用程序中應用。
總結:
java.exe用于啟動window console 控制臺程序
javaw.exe用于啟動 GUI程序
javaws.exe用于web程序。
jvm.dll就是java虛擬機規(guī)范在windows平臺上的一種實現(xiàn)
注:原文地址:http://javapapers.com/core-java/java-vs-javaw-vs-javaws/
總結
到此這篇關于java和 javaw 及 javaws的區(qū)別解析的文章就介紹到這了,更多相關java和 javaw 及 javaws的區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring boot監(jiān)控Actuator-Admin實現(xiàn)過程詳解
這篇文章主要介紹了Spring boot監(jiān)控Actuator-Admin實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09springboot jpaRepository為何一定要對Entity序列化
這篇文章主要介紹了springboot jpaRepository為何一定要對Entity序列化,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12Security中的@PostAuthorize、@PreFilter和@PostFilter詳解
這篇文章主要介紹了Security中的@PostAuthorize、@PreFilter和@PostFilter詳解,@PostAuthorize是在方法調用完成后進行權限檢查,它不能控制方法是否能被調用,只能在方法調用完成后檢查權限決定是否要拋出AccessDeniedException,需要的朋友可以參考下2023-11-11