运行不同于java程序的.exe程序

运行不同于java程序的.exe程序,java,process,cmd,Java,Process,Cmd,我在尝试运行bfgminer.exe-o bla.bla.com-u-p-S auto-d all时卡住了 我尝试了多种方法来运行此可执行文件,但无法使其运行: public static void runCmd(){ try{ ProcessBuilder builder = new ProcessBuilder("cmd.exe","/c", "cd \"C:\\Users\\pawisoon\\bfgminer-3.10.0-win64\" &&

我在尝试运行
bfgminer.exe-o bla.bla.com-u-p-S auto-d all时卡住了

我尝试了多种方法来运行此可执行文件,但无法使其运行:

public static void runCmd(){

    try{
        ProcessBuilder builder = new ProcessBuilder("cmd.exe","/c", "cd \"C:\\Users\\pawisoon\\bfgminer-3.10.0-win64\" && bfgminer.exe -o bla.bla.com -u <user> -p
<pswd> -S auto -d all");

        builder.redirectErrorStream(true);
        Process pd = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(pd.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }

catch(IOException e){

}
}

请帮我解决这个问题:/

据我所见,您试图执行

cd C:\Users\pawisoon\bfgminer-3.10.0-win64\
C:\Users\pawisoon\bfgminer-3.10.0-win64\bfgminer.exe -o bla.bla.com -u -p -S auto -d all
然后

bfgminer.exe -o bla.bla.com -u -p -S auto -d all
因为我想象bfgminer.exe在所提供的实际保留库中(C:\Users\pawisoon\bfgminer-3.10.0-win64)

但事实上,我不确定您的两个cmd命令是否正确执行(我的意思是:我不确定保留的指令库是否作为执行第二个命令的参考)

那么为什么不试着去执行呢

cd C:\Users\pawisoon\bfgminer-3.10.0-win64\
C:\Users\pawisoon\bfgminer-3.10.0-win64\bfgminer.exe -o bla.bla.com -u -p -S auto -d all
(无cd和可执行文件的完整路径)


或者查看@ginz comment并尝试直接启动可执行文件(不使用cmd),如果您不特别想使用cmd.exe

非常感谢您的回答!我把你的建议结合起来,效果很好。以下是代码:

public static void runCmd(){
    File f = new File("C:\\Users\\pawisoon\\bfgminer-3.10.0-win64");
    try{
        ProcessBuilder builder = new ProcessBuilder("cmd.exe","/c","start","bfgminer.exe", "-o", "bla.bala.com", "-u", "user", "-p", "lelelel", "-S", "auto", "-d", "all");
        builder.directory(f);

        builder.redirectErrorStream(true);
        Process pd = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(pd.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }

catch(IOException e){

}
}

为什么不从
ProcessBuilder pb=new ProcessBuilder(“C:\\Users\\Pawison\\bfgminer-3.10.0-win64\\bfgminer.exe”、“-o”、“bla.bla.com”、“-u”、”、“-p”、“-S”、“auto”、“-d”、“all”)开始