我不确定如何通过Java代码启动外部应用程序(特别是在Windows上)。我不打算在 Mac/Linux 上使用这个 Java 代码,所以让我们重点关注 Windows 代码。
我做了什么
这两天我一直在研究这个问题,但还是没有找到答案。我轻松找到了 Runtime.getRuntime().exec() 方法,但问题是我找不到有关从本地工作区启动批处理 (.bat) 文件的信息 IntelliJ Idea。
我在问什么
我只是想知道如何在我的工作区中执行本地批处理文件(在 com.example.batch
这样的文件夹中)和/或如何执行带有直接文件地址的 (.exe) 或 (.bat)。 (例如,Windows 的碎片整理和优化驱动器 (.exe):C:\WINDOWS\system32\dfrgui.exe
)
提前感谢大家,我一直渴望得到这个答案。
最佳答案
首先,您应该使用 ProcessBuilder
执行外部程序,比 Runtime.getRuntime().exec()
更易于使用的界面.
其次,执行.bat
文件,你所要做的就是执行cmd.exe
并在 /C
中传递批处理文件名选项。请注意,当您运行批处理文件时,您正在启动 DOS cmd 处理器并告诉它运行批处理文件而不是从终端读取。因此,批处理文件必须位于 cmd.exe
可以访问的位置。 。因此它不能位于包含 Java 程序的 jar 文件内。如果需要将其分发到 jar 中,则必须将其复制到文件系统的某个位置。
关于Java - 执行外部 Windows 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38024450/