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
。
我一直在尝试解压 .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
。