我搜索了解java.exe
和javaw.exe
之间的区别。我读完了
Difference between Java.exe and Javaw.exe
据说java.exe
用于控制台,javaw.exe
用于窗口应用。
在其他一些帖子中,提到javaw
中没有控制台。
但我想知道当我运行Tomcat服务器并在进程资源管理器中看到它的进程时,我看到javaw.exe
,即使tomcat是一个控制台应用程序。
答案 0 :(得分:4)
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 :(得分:1)
1。 java.exe
是等待应用程序完成的命令,直到它接受下一个命令,javaw.exe
是不等待应用程序的命令完成。你可以继续使用其他命令。
2。 java.exe
是控制台应用,而javaw.exe
是Windows应用(无控制台),javaw.exe
命令与{{1}相同},除了java.exe
,没有关联的控制台窗口
答案 2 :(得分:0)
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时,没有关联的命令提示符窗口。
答案 3 :(得分:0)
java.exe会弹出一个控制台窗口。 javaw.exe没有。
java.exe和javaw.exe都可以执行java程序,包括jar文件,区别在于java.exe你执行了控制台,你需要等到java程序完成后才能运行其他命令如果是javaw.exe没有控制台或窗口与执行相关联。
java和javaw命令的主要区别在于,使用java.exe,您将获得一个命令提示符窗口,但是使用javaw.exe时,没有命令提示符窗口关联。
答案 4 :(得分:0)
这取决于Tomcat服务器的运行方式。但是,配置和启动Tomcat的方法是不可能的。我可以说有不同的选择。如果您使用java
启动Tomcat,它将像命令行应用程序一样运行,该应用程序将IO定向到控制台。如果使用javaw
运行它,则它不会将IO指向控制台。许多应用程序和服务器都具有可将输出定向到控制台的日志记录功能。为了这个目的,最好使用java
的命令行实例而不是windows app。运行javaw
vs java
的原因是没有记录,调试消息,没有错误,堆栈跟踪,异常,System.out
和System.err
生成的所有内容在运行时都可见应用
答案 5 :(得分:0)
除了上述要点之外,还可以注意到多线程程序可以用java运行但 javaw只能运行单线程程序!