1

我不想在 java 中提取 rar 文件。我也希望能够选择提取文件的位置。我试图找到一个没有任何运气的图书馆。所以我尝试将该Runtime.getRuntime().exec()命令与官方的rarlabs程序一起使用。在终端中可以提取,但是在代码中使用相同的命令时,它根本不起作用。这是最好的方法,还是我应该使用其他方法?我在运行时命令做错了什么?这是一个不起作用的示例代码:

Process p = Runtime.getRuntime().exec("cd ~/Desktop/testfolder && /usr/local/bin/unrar x ~/Desktop/test.rar");

顺便说一句,我正在使用mac。

4

1 回答 1

0

在构建您的流程之前使用ProcessBuilder并确保调用它。inheritIO()您的问题,即子进程的stdout. 发生这种情况是因为默认情况下为您提供了一个InputStream子进程的stdout管道,并且您负责将其排空。

于 2013-05-17T14:07:56.233 回答