Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java exec正在尝试对文件进行解压缩_Java_Tar_Runtime.exec - Fatal编程技术网

java exec正在尝试对文件进行解压缩

java exec正在尝试对文件进行解压缩,java,tar,runtime.exec,Java,Tar,Runtime.exec,我一直在尝试解压一个.tbz文件,但在java应用程序中没有取得很多成功。我现在决定尝试点击命令行来完成这项工作,它目前没有遇到任何错误,但也没有解压文件。有人能看出这有什么问题吗 String[] cmd = { "tar", "-xjf", "/var/tmp/filename.tbz"}; Process p =Runtime.getRuntime().exec(cmd, null); 编辑,这项工作: List<String> commands =

我一直在尝试解压一个.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);
    }
List命令=new ArrayList();
命令。添加(“tar”);
commands.add(“-xvjf”);
add(“/var/tmp/filename.tbz”);
ProcessBuilder pb=新的ProcessBuilder(命令);
进程p=pb.start();
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
p、 getInputStream());
字符串读取线;
而((readline=reader.readline())!=null){
System.out.println(读线);
}

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

String[] cmd = { "tar", "-xjf", "/var/tmp/filename.tbz"};
如果您确实希望执行以下操作,而不是上述操作:

cd /var/tmp
tar -xjf filename.tbz

在本例中,您可以使用。

我更改了它,但仍然没有错误和输出,我正在查看processbuilder,第一部分是否需要“tar”,其余部分是字符串?这不会产生任何输出。要读取输出,您需要做更多的工作。但是我给你的代码应该提取文件;命令。添加(“tar”);commands.add(“-xvjf”);add(“/var/tmp/filename.tbz”);ProcessBuilder pb=新的ProcessBuilder(命令);仍然没有提取。这太令人沮丧了。