我正在寻找一种在java运行时读取RPM内容的方法。
有人建议使用7zip在运行时解压缩和/或提取RPM,使用7zip的系统命令。
该解决方案有两个缺点:
任何想法?
编辑:
我正试着走下罗伯特的道路。这是我的代码:
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 [????
(有趣的字符来自原始错误消息)。
答案 0 :(得分:1)
似乎commons-compress
有一个cpio package,您可能会发现从RPM文件中读取数据非常有用。
答案 1 :(得分:0)
使用库解压缩LZMA:http://www.7-zip.org/sdk.html