java和javaw之间的区别

我搜索了解java.exejavaw.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.outSystem.err生成的所有内容都是可见的。

除了所述的要点之外,还可以注意到multithreading程序可以用java运行,javaw只能运行单线程程序!