Heim > Java > javaLernprogramm > Hauptteil

Wie ruft Java den CMD-Befehl des Windows-Systems auf und startet ein neues Programm?

WBOY
Freigeben: 2023-05-10 14:43:06
nach vorne
2144 Leute haben es durchsucht

我们通常在使用Java 调用脚本的时候,会使用 Runtime 类如:

// 打开浏览器并访问 http://localhost:7001
Runtime.getRuntime().exec("cmd /c start http://localhost:8080");
Nach dem Login kopieren

这里我们使用到了终端 CMD

# 执行字符串指定的命令,并在执行命令后保留窗口
cmd /k echo "Hello World!"
# 执行字符串指定的命令,然后退出
cmd /c echo "Hello World!"
Nach dem Login kopieren

start 命令

start命令是 cmd 终端提供的一个命令,通过该命令可以启动单独的窗口以运行指定的程序或命令。

# 创建一个新的 cmd 窗口
start cmd
Nach dem Login kopieren

如果单独运行 start ,你会发现会报错:

Runtime.getRuntime().exec("start http://localhost:8080");
Nach dem Login kopieren

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");
Nach dem Login kopieren

应用

我们可以在调试应用时在应用启动后通过该命令让其自动打开浏览器。

SpirngBootApplication.run(Application.class.args);
Runtime.getRuntime().exec("cmd /c start http://localhost:8080");
Nach dem Login kopieren

或者让 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);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie ruft Java den CMD-Befehl des Windows-Systems auf und startet ein neues Programm?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage