2015-12-14 36 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