新的生活开始了,在旧电脑上一顿操作,最终还是重装了系统。期间发现之前一直没有注意过的javaw.exe这个程序,好像在设置eclipse时起到了很大的作用,于是稍微的研究了一下。
javaw.exe主要用于启动基于GUI的应用程序。如果程序是纯粹的图形化的,而且你需要提升速度,用javaw。而用javaw.exe运行java程序的话,控制台还可以输入其他命令。
javaw的使用
安装了jdk之后,电脑中会出现三个javaw,一个在jdk文件下的bin中,一个在jdk同目录的jre中,一个在windows/system32中,当然这三个目录中还有三个java.exe和javaws.exe。
那我们的程序会使用哪一个javaw来运行我们的程序呢。如果程序的配置文件中可以指定的,就用指定的。
使用的就是我们在环境变量中配置的,path下的,顺序靠前的那一个bin下的程序。
使用javaw.exe时,会使用jre,它使用的jre如下,(1)java.exe当前目录寻找.(2)java.exe父目录下寻找.(3)寻找注册表下面,里面的路径是哪个就找哪个。
找到jre之后,如果java.exe与jre的版本一致,就会执行。
jvm是jre的一部分,jre是jvm的补充,jvm就在jre/bin目录下,server文件中的jvm.dll。
jdk中的jre主要供给jdk本身使用.jdk旁边的jre就是jre安装时,放在注册表路径中的jre,供给其他程序使用。
因此我们想运行一个GUI程序不需要命令控制台。
下面是一个例子:
javaw的使用 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进程 ------ 因为这是通过控制台运行的。
以上是javaw.exe是什么的详细内容。更多信息请关注PHP中文网其他相关文章!