Java - 执行外部 Windows 应用程序?

标签 java windows batch-file intellij-idea executable

我不确定如何通过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/

相关文章:

java - Java 中的 'ambiguous type' 错误是什么?

windows - 如何在批处理文件中的给定路径中获取第一个(最后修改的)文件夹名称

java - 与命令行进程交互

windows - 设置递归深度

java - 如何替换 Axis2 生成的 AAR 文件中的文件?

java - 从字符串数组中查找重复值

java - Android Studio Onbackpressed

windows - 将 Outlook 电子邮件保存为文本文件,然后在其上运行脚本?

sql-server - 用于从源代码控制重新创建数据库的批处理脚本

batch-file - 如何取消注册 dll,然后在同一个批处理文件上注册 dll?