如何在Java中读取RPM文件的内容?

6
我正在寻找一种在Java运行时读取RPM内容的方法。
有人建议使用7zip在运行时解压缩和/或提取RPM,使用7zip的系统命令。
该解决方案有两个缺点:
1.它是平台相关的(因为命令将特定于一个操作系统);
2.它涉及第三方软件。
有任何想法吗?
编辑:
我正在尝试按照Robert的方法进行。这是我的代码:
String file = "MyRpm.rpm";

CpioArchiveInputStream cpioIn = 
       new CpioArchiveInputStream( new FileInputStream(new File(file)) );
 CpioArchiveEntry cpioEntry;



while ((cpioEntry = cpioIn.getNextEntry()) != null)
{
    System.out.println(cpioEntry.getName());
    int tmp;
    StringBuffer buf = new StringBuffer();
    while ((tmp = cpioIn.read()) != -1)
    {
        buf.append((char) tmp);
    }
    System.out.println(buf.toString());
}
cpioIn.close();

我遇到了一个异常:java.io.IOException: 未知的魔数[????(有趣的字符来自原始错误消息)。


什么是RMP?你是指RPM吗? - nfechner
2个回答

2

看起来 commons-compress 有一个 cpio 包,你可能会发现它在读取 RPM 文件的数据方面非常有用。


不确定为什么会发生这种情况,也许你可以在这个库的邮件列表上询问,或者提交一个bug报告。我没有使用过它,只是通过谷歌搜索找到的。 - Robert Munteanu

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接