2014-05-14 163 views
-1

我被困不同的.exe程序試圖運行bfgminer.exe -o bla.bla.com -u <nick> -p <passwd> -S auto -d all從運行Java程序

我嘗試了許多方法來運行這個可執行文件,但我不能得到它的工作:

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

} 
} 

這是我從控制檯在Eclipse中有:

'bfgminer.exe' is not recognized as an internal or external command, 
operable program or batch file. 

請幫助我如何解決這個問題:/

+0

爲什麼你不只是'的ProcessBuilder PB啓動=新的ProcessBuilder( 「C:\\ \\用戶\\ pawisoon bfgminer-3.10.0-Win64的\\ bfgminer.exe」 ,「-o」,「bla.bla.com」,「-u」,「」,「-p」,「」,「-S」,「auto」,「-d」,「all」) ;' –

回答

0

從我看到,您嘗試執行

cd C:\Users\pawisoon\bfgminer-3.10.0-win64\ 

然後

bfgminer.exe -o bla.bla.com -u -p -S auto -d all 

,因爲我想象(bfgminer.exe是在suppposed實際劇目C:\用戶\ pawisoon \ bfgminer 3.10的3.0 Win64上)

但實際上我不知道你的兩個CMD命令被正確執行(我的意思是:我不知道該劇目保持作爲第二個命令的執行)

參考

那麼,爲什麼不只是嘗試執行

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

(無CD和完整路徑可執行文件)

或檢查出@ginz評論,並嘗試直接啓動可執行文件(不使用CMD)如果你不特別想使用cmd.exe

1

非常感謝你的回答!我結合你的建議,它的工作。這裏是代碼:

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

} 
}