我尝试了以下两种方法:
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应用程序运行它的正确方法是什么?
答案 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\"");