java exec 试图解压一个文件

java exec attempting to untar a file

我一直在尝试解压 .tbz 文件,但在 java 应用程序中没有成功。我现在决定尝试点击命令行来完成工作,它目前没有遇到任何错误,但它也没有解压文件。任何人都可以看到这方面的问题吗?

    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);
    }

中间的 cd 命令在做什么?也许你的意思是:

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

如果不是以上,你真的想这样做:

cd /var/tmp
tar -xjf filename.tbz

在这种情况下,您可以使用 ProcessBuilder