如何使用Java获取已安装的RPM软件包列表

时间:2014-05-14 20:10:05

标签: java linux rpm

有没有办法使用Java获取已安装的软件包列表?我想评估内部Linux数据库并获取此信息。在我的例子中,使用简单的java代码不是一个选项。

Process rpmProc = Runtime.getRuntime().exec("rpm -qa");
BufferedReader input = new BufferedReader(new InputStreamReader(rpmProc.getInputStream()));

String package;
while ((package = input.readLine()) != null) {
    // .. do something
}

有没有办法使用Java在操作系统的较低级别访问此信息?

2 个答案:

答案 0 :(得分:1)

您可以阅读用户$HOME中的包数据库文件,这些文件存储在$HOME/.rpmdb下。这些文件可以由Berkeley DB软件

读取

答案 1 :(得分:0)

如果Linux是指Linux内核,那么就没有这样的数据库了。安装由包管理器管理,如rpm,deb,pac等。这些文件在您使用rpm在代码中访问它们的文件中维护自己的数据库。它们不是系统低级API,也不应该存在,因为包管理不是​​内核的工作。