好吧,我和一位 friend 谈论了 Ada(我是这里的本地支持者),在他的项目中,他在尝试使用 Java(使用 JNI)来让应用程序在客户端计算机上运行时遇到了困难(仅限 Windows、Mac 和 Linux)以获取应用程序列表。
我对 Mac 一点也不熟悉,我的 Linux 经验主要是学术界的用户端。
所以,我的问题是:有人知道获取进程列表的良好跨平台方法吗?
我的解决方案是使用一个package
规范,其中包含一个通用函数,以Java期望的方式返回列表,并为每个平台组合三个不同的主体,以获得该过程-根据该系统列出并分别为这些目标编译(生成的)三个二进制文件。
有没有一种[好]方法可以做到这一点而无需诉诸三个不同的版本? (这是一个 Ada 问题,但欢迎使用 Java 解决方案。)
最佳答案
Java 没有跨平台 API 来列出正在运行的进程。 ProcessBuilder
可用于执行 ps
命令,如图here和 here 。 Ada 中的(粗略)等效项是 GNAT 中的 GNAT.Os_Lib.Spawn
。我不确定其他实现。
关于java - 这里有人知道获取进程列表的好跨平台方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7801426/