cmd文件和命令行窗口运行java程序的区别?

2025-05-19 18:44:51
推荐回答(1个)
回答(1):

是不是想直接用bat运行java程序,运行结束时不直接退出让你看得到结果?

方法:用CMD的“pause”命令让CMD窗口先暂停后按任意键再退出

示例代码:(Test.java文件)

import java.util.Scanner;

public class Test {
public static void main(String[] a) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
System.out.println(n + "");
}
}

(runTest.bat文件):

@echo off
java Test
pause

java文件编译好之后,测试结果:

在CMD窗口中用命令运行的:

直接双击bat文件运行的:

此时运行结果就会给你看(我猜你的程序没有正常运行说的就是看不到结果吧。。。)

为什么两个窗口的标题会不一样?

第一种运行方式是在已打开的CMD窗口中以交互的方式执行一个程序,该CMD窗口占一个进程,CMD执行普通命令的方式是不开进程的,是直接在原来的进程中执行命令,所以,如果该命令没有完成,该CMD窗口为了表示此时执行的是某个命令而不是等待用户输入命令,所以该CMD窗口标题才会有命令出现。

而第二种运行方式是直接运行BAT脚本,该脚本创建的CMD窗口只为了这个脚本而存在,所以不需要在标题中提示当前的执行的命令(脚本名字就更不用说了),每次双击运行一个BAT脚本其实都是运行系统Windows目录(比如C:\Windows)下的system32\cmd.exe程序,并且以双击的脚本完整路径作为参数传递给它,它才能执行相应脚本。所以标题总是“C:\windows\system32\cmd.exe”