1. 程式人生 > 程式設計 >java和 javaw 及 javaws的區別解析

java和 javaw 及 javaws的區別解析

java,javaw 和 javaws 的區別:

首先,所有的這些都是java的啟動裝置,java.exe經常使用,當使用命令列輸出到window的時候,會有java.exe程序,通過工作管理員可以看到。通常 我們執行一些小的java程式的時候會有 java.exe程序在執行。javaw.exe對於我們也比較特殊,我們也能夠通過工作管理員看到javaw.exe程序的執行。javaws通常web開啟的時候的程序。

java和 javaw 及 javaws的區別解析

jvm.dll

jvm.dll是一個java虛擬機器在windows平臺環境上的實現,也是JRE的一部分,一個C程式能夠使用jvm.dll直接執行在jvm上。

java.exe

java.exe是win32控制檯應用,它提供了一種幫助,代替使用jvm.dll執行java classes 檔案,作為一個win32控制檯應用,顯然他是和一個控制檯相關聯,當執行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 的路徑設定為當前目錄。

執行後檢視工作管理員出現了 java.exe程序 ------ 因為這是通過控制檯執行的。

圖如下:

java和 javaw 及 javaws的區別解析

java和 javaw 及 javaws的區別解析

如果在eclipse中直接執行:執行後 檢視工作管理員出現 javaw.exe程序 --因為沒有通過控制檯輸出執行。

圖如下:

java和 javaw 及 javaws的區別解析

如果用javaw通過命令列執行也是如上圖所示:

java和 javaw 及 javaws的區別解析

注:javaw -classpath . javaw.HelloWorldSwing 啟動的程序為javaw.exe

java -classpath . javaw.HelloWorldSwing 啟動的程序為java.exe

java.exe 和 javaw.exe兩種執行方式的區別還有一點 java執行GUI以後堵塞在那裡直到視窗關閉。

javaw執行GUI後 直接就可以進行下一條命令的運行了。

javaws.exe

javaws.exe程序適用於啟動通過web 配置的程式,簡而言之就是在web應用程式中應用。

總結:

java.exe用於啟動window console 控制檯程式

javaw.exe用於啟動 GUI程式

javaws.exe用於web程式。

jvm.dll就是java虛擬機器規範在windows平臺上的一種實現

注:原文地址:http://javapapers.com/core-java/java-vs-javaw-vs-javaws/

總結

到此這篇關於java和 javaw 及 javaws的區別解析的文章就介紹到這了,更多相關java和 javaw 及 javaws的區別內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!