2015-12-14 46 views
1

我一直在試圖解壓一個.tbz文件,而沒有在java應用程序中取得很多成功。我現在決定嘗試命令行來完成這項工作,目前它沒有通過任何錯誤,但它也沒有解壓文件。任何人都可以看到這個問題?java exec試圖解壓文件

String[] cmd = { "tar", "-xjf", "/var/tmp/filename.tbz"}; 

    Process p =Runtime.getRuntime().exec(cmd, null); 

編輯,這個工程:

List<String> commands = new ArrayList<String>(); 
    commands.add("tar"); 
    commands.add("-xvjf"); 
    commands.add("/var/tmp/filename.tbz"); 

    ProcessBuilder pb = new ProcessBuilder(commands); 
    Process p = pb.start(); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(
      p.getInputStream())); 
    String readline; 
    while ((readline = reader.readLine()) != null) { 
     System.out.println(readline); 
    } 

回答

1

什麼是cd命令,在中間做什麼呢?也許你的意思是這樣的:

String[] cmd = { "tar", "-xjf", "/var/tmp/filename.tbz"}; 

相反,如果上面的,你真的想這樣做:

cd /var/tmp 
tar -xjf filename.tbz 

在這種情況下,你可以使用ProcessBuilder

+0

我改變了它,仍然沒有錯誤,沒有輸出,我看着processbuilder,是第一部分需要「焦油」,其餘的字符串? – caro

+0

這不會產生任何輸出。要閱讀輸出結果,你需要更多的工作。但我給你的代碼應該提取文件。 – janos

+0

要獲得輸出,請參閱本教程:http://www.mkyong.com/java/how-to-execute-shell-command-from-java/ – janos