java和javaw之间的区别
我搜索了解java.exe
和javaw.exe
之间的区别。 我通读了Java.exe和Javaw.exe之间的区别 。
据说java.exe
用于控制台, javaw.exe
用于窗口应用程序。 在其他一些post中提到控制台在javaw
不可用。
但我想知道当我运行Tomcat服务器并在进程资源管理器中看到它的进程时我看到了javaw.exe
即使tomcat是一个控制台应用程序。
java和javaw命令状态
java和javaw工具通过启动JRE并加载指定的类来启动Java应用程序。
javaw
命令与java相同,只是javaw
没有关联的控制台窗口。 如果不希望显示命令提示符窗口,请使用javaw
。
如果失败, javaw
启动器会显示一个包含错误信息的窗口。 在Tomcat的情况下,您将看不到Win32控制台应用程序正在运行,与启动Eclipse类似,使用了javaw.exe。
示例:编写以下代码:
import javax.swing.*; public class JavavsJavaw { private static void renderGUI() { 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() { renderGUI(); } }); } }
步骤1: C:\>java JavavsJavaw
(命令行等待应用程序响应,直到它关闭)步骤2: C:\>javaw JavavsJavaw
(应用程序启动,命令行立即退出并准备好
下一个命令)
1. java.exe
是等待应用程序完成的命令,直到它接受下一个命令, javaw.exe
是不等待应用程序完成的命令。 你可以继续使用其他命令。
2. java.exe
是控制台应用程序,而javaw.exe
是windows app(无控制台), javaw.exe
命令与java.exe
相同,但javaw.exe
没有关联的控制台窗口
java.exe和javaw.exe命令之间的区别是在Windows上运行java程序时你可能已经注意到它们将作为java.exe或javaw.exe出现在任务管理器中,同样在JAVA_HOME / bin中我们看到这两个java命令java .exe和javaw.exe,你知道java.exe和javaw.exe的区别吗?
java.exe和javaw.exe都可以执行java程序,包括jar文件,唯一不同的是java.exe你有一个控制台执行,你需要等到你的java程序完成运行任何其他命令,以防万一javaw.exe没有控制台或窗口与执行相关联。
您可以使用java.exe或javaw.exe运行您的java程序。 建议在不需要命令行窗口时使用javaw.exe。 如果执行失败,javaw launcher将在对话框中显示错误。
总结java和javaw命令的主要区别在于,使用java.exe,您将获得一个命令提示符窗口,但是使用javaw.exe时,没有关联的命令提示符窗口。
java.exe弹出一个控制台窗口。 javaw.exe没有。
java.exe和javaw.exe都可以执行java程序,包括jar文件,唯一不同的是java.exe你有一个控制台执行,你需要等到你的java程序完成运行任何其他命令,以防万一javaw.exe没有控制台或窗口与执行相关联。
java和javaw命令的主要区别在于,使用java.exe,您将获得命令提示符窗口,但是使用javaw.exe时,没有关联的命令提示符窗口。
这取决于Tomcat服务器的运行方式。 但是,配置和启动Tomcat的方法是不可能的。 我可以说有不同的选择。 如果你用java
启动Tomcat,它就像命令行应用程序一样运行,它将IO引导到控制台。 如果您使用javaw
运行它,那么它不会将IO指向控制台。 许多应用程序和服务器都具有可将输出定向到控制台的日志记录function。 为了这个目的,最好使用java
的命令行实例而不是windows app。 运行javaw
vs java
的原因是没有日志记录,调试消息,没有错误,堆栈跟踪,exception,运行应用程序时System.out
和System.err
生成的所有内容都是可见的。
除了所述的要点之外,还可以注意到multithreading程序可以用java运行,但javaw只能运行单线程程序!