【问题标题】:Java: Unrar rar file with java commandJava:使用 java 命令解压缩 rar 文件
【发布时间】:2013-05-12 17:47:14
【问题描述】:

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

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

顺便说一下,我用的是mac。

【问题讨论】:

    标签: java runtime rar


    【解决方案1】:

    使用ProcessBuilder 并确保在构建您的流程之前调用inheritIO()。您的问题是子进程的stdout 上的缓冲区溢出。发生这种情况是因为默认为您提供了一个InputStream,子进程的stdout 通过管道传输到该stdout,并且您负责将其排空。

    【讨论】:

      猜你喜欢
      • 2011-12-26
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2016-07-29
      相关资源
      最近更新 更多