如何使用Java调用Windows系统CMD命令并启动新程序?
我们通常在使用Java调用脚本的时候,会使用Runtime类如://打开浏览器并访问http://localhost:7001Runtime.getRuntime().exec("cmd/cstarthttp://localhost:8080");这里我们使用到了终端CMD#执行字符串指定的命令,并在执行命令后保留窗口cmd/kecho"HelloWorld!"#执行字符串指定的命令,然后退出cmd/cecho"HelloWorld!"start命令start命令是cmd终端提供的一个命令,通过该命令可以
我们通常在使用Java 调用脚本的时候,会使用 Runtime 类如:
// 打开浏览器并访问 http://localhost:7001
Runtime.getRuntime().exec("cmd /c start http://localhost:8080");这里我们使用到了终端 CMD
# 执行字符串指定的命令,并在执行命令后保留窗口 cmd /k echo "Hello World!" # 执行字符串指定的命令,然后退出 cmd /c echo "Hello World!"
start 命令
start命令是 cmd 终端提供的一个命令,通过该命令可以启动单独的窗口以运行指定的程序或命令。
如
# 创建一个新的 cmd 窗口 start cmd
如果单独运行 start ,你会发现会报错:
Runtime.getRuntime().exec("start http://localhost:8080");Exception in thread “main” java.io.IOException: Cannot run program “start”: CreateProcess error=2, 系统找不到指定的文件。
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:621)
at java.lang.Runtime.exec(Runtime.java:451)
at java.lang.Runtime.exec(Runtime.java:348)
at com.example.Main3.main(Main3.java:22)
… 4 more
这是因为 start 命令是 cmd 终端中提供的一个命令,需要在 cmd 环境下执行。
通过 Java 创建一个新的终端:
// 第一 cmd 命令用于创建环境执行 start 命令
// cmd /k 表示在创建一个新的终端并保留该终端
Runtime.getRuntime().exec(String.format("cmd /c start cmd /k");应用
我们可以在调试应用时在应用启动后通过该命令让其自动打开浏览器。
SpirngBootApplication.run(Application.class.args);
Runtime.getRuntime().exec("cmd /c start http://localhost:8080");或者让 Arthas 自动启动连接当前应用。这个在做一些Java诊断工具的学习中会很有帮助,不需要我们手敲命令行去查找相关参数后才能能打开应用了。
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
String pid = bean.getName().split("@")[0];
String cmd = String.format("cmd /c start cmd /k D:\\arthas-bin\\as.bat %s", pid);
Runtime.getRuntime().exec(cmd);
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















