0
我很難搞清楚如何通過Java傳遞命令行選項。 我的Java代碼需要調用一個二進制文件,然後運行一些指令。 我需要傳遞的命令是來自Java的Linux命令行指令
./program 100 -r 1
現在有沒有辦法可以傳遞-r選項1. 在我的Java代碼,如果我跑:
command=new String [2];
command[0] = ".//program";
command[1] = " "+String.valueOf(nScen);
Process p = Runtime.getRuntime().exec(command);
一切工作正常,並程序運行正常。 nScen
是一個整數。 但是,如果我嘗試
command=new String [3];
command[0] = ".//program";
command[1] = " "+String.valueOf(nScen);
command[2] = " -r 1";
Process p = Runtime.getRuntime().exec(command);
或
command=new String [2];
command[0] = ".//program";
command[1] = " "+String.valueOf(nScen)+" -r 1";
Process p = Runtime.getRuntime().exec(command);
程序不運行。我嘗試使用.concat
而不是+
來合併字符串等其他內容。 這樣做的正確方法是什麼?
感謝您的幫助。
不要使用'Runtime.exec()',而是使用'ProcessBuilder'! – fge 2014-10-29 15:05:08
'String.valueOf(nScen)','-r'和'1'可能應該在數組的不同元素中。 (但請按照@ fge的建議。) – Biffen 2014-10-29 15:07:48
您不必逃避常規/,您只需要避免像\\那樣的反斜槓。 – 2014-10-29 15:14:32