Java 如何在指定目录中创建tar

Java 如何在指定目录中创建tar,java,tar,Java,Tar,我在目录/主页中 如何使用/home/user/a/b/old/中的文件创建tar。此tar应位于文件夹:/home/user/a/b/old/中,并且tar应仅包含文件夹/home/user/a/b/old/中的文件和文件夹,而不是此文件的完整路径。我不能使用命令cd。这可能吗 这必须从Java运行,这就是为什么它有一个[Java]标记。你是说 ( cd /home/user/a/b/old/ tar cvf /tmp/old.tar . mv /tmp/old.tar . ) 您可能还需要

我在目录/主页中

如何使用/home/user/a/b/old/中的文件创建tar。此tar应位于文件夹:/home/user/a/b/old/中,并且tar应仅包含文件夹/home/user/a/b/old/中的文件和文件夹,而不是此文件的完整路径。我不能使用命令cd。这可能吗

这必须从Java运行,这就是为什么它有一个
[Java]
标记。

你是说

(
cd /home/user/a/b/old/
tar cvf /tmp/old.tar .
mv /tmp/old.tar .
)
您可能还需要使用压缩文件

(
cd /home/user/a/b/old/
tar cjvf /tmp/old.tar.bz2 .
mv /tmp/old.tar.bz2 .
)

我想你应该试试这样的东西:
processp=Runtime.getRuntime().exec(新字符串[]{“bash”、“-c”、“tar cjvf/home/user/a/b/old//home/user/a/b/old/”})

为什么不能更改目录?您可以在Windows、Mac OS和UNIX中使用
cd
。你正在使用哪个操作系统?VMS?因为我是从java代码执行这个命令的。所以你的意思是你需要使用类似于
bash-c
cmd/c
的shell到cd,但这些都不在你的系统上?使用ProcessBuilder,你也可以在启动程序之前设置工作目录。你可以用File.rename()在Java中移动。不,这不起作用,因为在tar中,我有我不想要的文件路径