如何在java中阅读RPM的内容

时间:2011-11-22 09:12:57

标签: java rpm

我正在寻找一种在java运行时读取RPM内容的方法。

有人建议使用7zip在运行时解压缩和/或提取RPM,使用7zip的系统命令。

该解决方案有两个缺点:

  1. 它取决于平台(因为命令将特定于一个操作系统)
  2. 它涉及第三方软件。
  3. 任何想法?

    编辑:
    我正试着走下罗伯特的道路。这是我的代码:

    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: Unknown magic [????(有趣的字符来自原始错误消息)。

2 个答案:

答案 0 :(得分:1)

似乎commons-compress有一个cpio package,您可能会发现从RPM文件中读取数据非常有用。

答案 1 :(得分:0)

使用库解压缩LZMA:http://www.7-zip.org/sdk.html