Windows下java、javaw、javaws以及jvm.dll等进程的区别

java  ,javaw   和  javaws 的区别:
首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到。通常 我们执行一些小的java程序的时候会有 java.exe进程在运行。javaw.exe对于我们也比较特殊,我们也能够通过任务管理器看到javaw.exe进程的运行。javaws通常web开启的时候的进程。

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进程   ------ 因为这是通过控制台运行的。
图如下:

如果在eclipse中直接运行:运行后 查看任务管理器出现 javaw.exe进程  --因为没有通过控制台输出运行。
图如下:

如果用javaw通过命令行运行也是如上图所示:

注:

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平台上的一种实现

(0)

相关推荐

  • Java虚拟机JVM性能优化(一):JVM知识总结

    Java应用程序是运行在JVM上的,但是你对JVM技术了解吗?这篇文章(这个系列的第一部分)讲述了经典Java虚拟机是怎么样工作的,例如:Java一次编写的利弊,跨平台引擎,垃圾回收基础知识,经典的GC算法和编译优化.之后的文章会讲JVM性能优化,包括最新的JVM设计--支持当今高并发Java应用的性能和扩展. 如果你是一个开发人员,你肯定遇到过这样的特殊感觉,你突然灵光一现,所有的思路连接起来了,你能以一个新的视角来回想起你以前的想法.我个人很喜欢学习新知识带来的这种感觉.我已经有过很多次这样

  • Java程序员必须知道的5个JVM命令行标志

    本文是Neward & Associates的总裁Ted Neward为developerworks独家撰稿"你不知道5个--"系列中的一篇,JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器.然而,我们很少有人能理解JVM是如何进行工作的-像任务分配和垃圾收集.转动线程.打开和关闭文件.中断和/或JIT编译Java字节码,等等. 不熟悉JVM将不仅会影响应用程序性能,而且当JVM出问题时,尝试修复也会很困难. 本文将介绍一些命令行标志,您可以使用它们来诊断和

  • Java虚拟机JVM性能优化(二):编译器

    本文将是JVM 性能优化系列的第二篇文章(第一篇:传送门),Java 编译器将是本文讨论的核心内容. 本文中,作者(Eva Andreasson)首先介绍了不同种类的编译器,并对客户端编译,服务器端编译器和多层编译的运行性能进行了对比.然后,在文章的最后介绍了几种常见的JVM优化方法,如死代码消除,代码嵌入以及循环体优化. Java最引以为豪的特性"平台独立性"正是源于Java编译器.软件开发人员尽其所能写出最好的java应用程序,紧接着后台运行的编译器产生高效的基于目标平台的可执行代

  • JVM(Java虚拟机)简介(动力节点Java学院整理)

    一.概要 1.Java虚拟机(Jvm)是什么? 2.Java虚拟机是用来干什么的? 3.Java虚拟机它的体系结构是什么样子的? 4.Java虚拟机在工作做扮演什么角色? 5.Java虚拟机在运行时数据区? 二.Jvm基础概念 Java虚拟机(Jvm)是可运行Java代码的假想计算机. Java虚拟机包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收堆和一个存储方法域. 在了解Jvm之前,大家如果有兴趣的,也可以先去了解下Java 中的堆和栈. 三.Jvm 我们都知道Java源文件,通过编译

  • Java虚拟机JVM性能优化(三):垃圾收集详解

    Java平台的垃圾收集机制显著提高了开发者的效率,但是一个实现糟糕的垃圾收集器可能过多地消耗应用程序的资源.在Java虚拟机性能优化系列的第三部分,Eva Andreasson向Java初学者介绍了Java平台的内存模型和垃圾收集机制.她解释了为什么碎片化(而不是垃圾收集)是Java应用程序性能的主要问题所在,以及为什么分代垃圾收集和压缩是目前处理Java应用程序碎片化的主要办法(但不是最有新意的). 垃圾收集(GC)的目的是释放那些不再被任何活动对象引用的Java对象所占用的内存,它是Java

  • Java JVM原理与调优_动力节点Java学院整理

    JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回收堆和一个存储方法域. JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行.是运行Java应用最底层部分. JDK(Java Development kit) 整个Java的核心,包括了Java运行环境(Java Runtime E

  • 深入JVM剖析Java的线程堆栈

    在这篇文章里我将教会你如何分析JVM的线程堆栈以及如何从堆栈信息中找出问题的根因.在我看来线程堆栈分析技术是Java EE产品支持工程师所必须掌握的一门技术.在线程堆栈中存储的信息,通常远超出你的想象,我们可以在工作中善加利用这些信息. 我的目标是分享我过去十几年来在线程分析中积累的知识和经验.这些知识和经验是在各种版本的JVM以及各厂商的JVM供应商的深入分析中获得的,在这个过程中我也总结出大量的通用问题模板. 那么,准备好了么,现在就把这篇文章加入书签,在后续几周中我会给大家带来这一系列的专

  • Windows下java、javaw、javaws以及jvm.dll等进程的区别

    java  ,javaw   和  javaws 的区别: 首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到.通常 我们执行一些小的java程序的时候会有 java.exe进程在运行.javaw.exe对于我们也比较特殊,我们也能够通过任务管理器看到javaw.exe进程的运行.javaws通常web开启的时候的进程. jvm.dll jvm.dll是一个java虚拟机在windows平台环境

  • windows下java -jar 后台运行以及杀死后台进程的操作

    在你的jar文件当前目录中建立一个bat文件: 内容是:注意文件名要对应 @echo off START "commandServer" javaw -jar command-0.0.1-SNAPSHOT.jar 之后双击bat文件就能后台启动jar包啦 杀死后台进程 首先执行命令 (你要知道你运行的jar文件的端口号) netstat -aon | findstr "9998" 可以看到PID为6452 然后在执行: tasklist|findstr "

  • Windows下Java环境变量配置详解

    前言 在Windows下JAVA用到的环境变量主要有3个,JAVA_HOME.CLASSPATH.PATH,下面来详细的介绍. JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路径下你应该能够找到bin.lib等目录. ( 今晚使用新系统配置,不知道怎么的需要加bin才可以在CMD运行,JAVA_HOME=C:\jdk1.5.0_06\bin; 下面是网上整理实践可使用贴上的,注意JDK和Eclipse必须同位数Bit才可以使用,不能是不同位数的程序,已实践,不

  • Windows下Java调用可执行文件代码实例

    这篇文章主要介绍了Windows下Java调用可执行文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 缘起: 由于没有找到java转换文件的接口,因此使用java调用exe文件进行文件转换 public void convertFile(){ Runtime rn = Runtime.getRuntime(); Process p =null; try{ p = rn.exec("D:/convert/Convert.exe D:/c

  • java 线程详解及线程与进程的区别

    java  线程详解及线程与进程的区别 1.进程与线程 每个进程都独享一块内存空间,一个应用程序可以同时启动多个进程.比如IE浏览器,打开一个Ie浏览器就相当于启动了一个进程. 线程指进程中的一个执行流程,一个进程可以包含多个线程. 每个进程都需要操作系统为其分配独立的内存空间,而同一个进程中的多个线程共享这块空间,即共享内存等资源. 每次调用java.exe的时候,操作系统都会启动一个Java虚拟机进程,当启动Java虚拟机进程时候,Java虚拟机都会创建一个主线程,该线程会从程序入口main

  • java  线程详解及线程与进程的区别

    java  线程详解及线程与进程的区别 1.进程与线程 每个进程都独享一块内存空间,一个应用程序可以同时启动多个进程.比如IE浏览器,打开一个Ie浏览器就相当于启动了一个进程. 线程指进程中的一个执行流程,一个进程可以包含多个线程. 每个进程都需要操作系统为其分配独立的内存空间,而同一个进程中的多个线程共享这块空间,即共享内存等资源. 每次调用java.exe的时候,操作系统都会启动一个Java虚拟机进程,当启动Java虚拟机进程时候,Java虚拟机都会创建一个主线程,该线程会从程序入口main

  • windows下java环境变量的设置方法

    windows xp下配置JDK环境变量:1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:/java/jdk1.5.0_08: 2.安装完成后,右击"我的电脑",点击"属性": 3.选择"高级"选项卡,点击"环境变量": 4.在"系统变量"中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击

  • Windows下Java+MyBatis框架+MySQL的开发环境搭建教程

    MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来. MyBatis是在Apache许可证 2.0下分发的自由软件,是iBATIS 3.0的分支版本.其维护团队也包含iBATIS的初创成员. 与其他的对象关系映射框架不同,MyBatis并没有将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联.MyBatis允许用户充分利用数据库的各种功能,例如存储过程.视图.各种复杂的查询以及某数据库的专有特性.如果要对遗留数据库.不规范的数据

  • Windows下Java调用OCR进行图片识别

    使用Java语言,通过Tesseract-OCR对图片进行识别. 1.Tesseract-OCR 下载windows版本并安装. 2.程序如下: a.ImageIOHelper类 package OCR; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.Locale; import ja

  • Windows下Nginx + PHP5 的安装与配置方法

    安装 PHP5 首先,从 http://www.php.net/downloads.php 下载最新的 PHP 5.3 Windows 版本,解压至 C:\php5,把压缩包中的 php.ini-recommended,更名为 php.ini,然后打开修改几个选项: 复制代码 代码如下: error_reporting = E_ALL display_errors = On extension_dir = "C:\php5\ext" ; 动态扩展,可以根据需要去掉 extension

随机推荐