java - 如何使用Java运行启动目录中的bat文件?

标签 java batch-file execute

我尝试了以下两种方法:

Runtime.getRuntime().exec("cmd.exe /c C:/Users/USER/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/MyApp.bat");

Runtime.getRuntime().exec("cmd.exe /c \"C:/Users/USER/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/MyApp.bat\"");

它们都不起作用,第一个没有任何错误消息,第二个有以下错误消息:

java.io.IOException: Cannot run program "cmd.exe /c C:/Users/USER/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/MyApp.bat": CreateProcess error=2, The system cannot find the file specified at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)

MyApp.bat 位于 Startup 目录中,我可以手动运行它。

从我的 Java 应用程序运行它的正确方法是什么?

最佳答案

对于打开计算机上的任何文件 - Desktop 类非常适合。下面是它的实现方法:

import java.awt.*;
import java.io.*;
public class OpenBat {
    public static void main(String[] args) throws IOException {
        Desktop desktop = Desktop.getDesktop();
        File bat = new File("C:/Users/USER/" +
        "AppData/Roaming/Microsoft/Windows/Start " + 
        "Menu/Programs/Startup/MyApp.bat");

        desktop.open(bat);

    }
}

关于java - 如何使用Java运行启动目录中的bat文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28006941/

相关文章:

java - 如何检查正则表达式不起作用的原因?

java - 如何使用Spring在Java中将一个属性使用到另一个属性中?

batch-file - 批处理 : How to store command output with spaces in variable?

batch-file - 获得所有连接的显示器的最大支持分辨率

java - JAX-RPC 处理程序发生异常

windows - 在 setenv.bat 中为 tomcat 7 windows 安装(作为服务)编写 set JAVA_OPTS 的位置

使用 cx_Oracle.execute() 时 Python 挂起

sql-server-2008 - T-SQL(MS SQL 2008),不带 'EXEC'或 'EXECUTE'词的执行过程

function - Dart&Flutter:如何在另一个类中调用一个类方法

java - linux中如何使用Java ProcessBuilder执行./filename