如何使用Java在Startup目录中运行bat文件?

时间:2015-01-18 03:48:10

标签: 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:无法运行程序“cmd.exe / c C:/ Users / USER / AppData / Roaming / Microsoft / Windows / Start Menu / Programs / Startup / MyApp.bat”:CreateProcess error = 2,系统找不到java.lang.ProcessBuilder.start中指定的文件(ProcessBuilder.java:1048)

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

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

2 个答案:

答案 0 :(得分:3)

要打开计算机上的任何文件,桌面类非常适合。以下是它的实现方式:

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);

    }
}

答案 1 :(得分:0)

好的,我明白了,它是:

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