是否可以使用applet获取正在运行的进程列表?

我想使用在浏览器中运行的java applet获取正在运行的进程列表。 我的理解是,只要applet签名,它就能获得这些信息。 这准确吗? 这是否可以使用未签名的applet? 最后,有没有我可以看看的FOS小程序?

谢谢。

只要想要访问/执行本地系统资源,就需要对applet进行签名。 这包括执行Runtime#exec()ProcessBuilder ,这是获取正在运行的进程列表所必需的。

您可以在此处找到如何在Windows中获取该列表的基本示例。 我建议在继续之前检查if (System.getProperty("os.name").startsWith("win"))

将给定的示例移植到applet并不难,只需让类扩展JApplet并从AccessController#doPrivileged()内部执行整个代码。

至于签名小程序,您可以手动签名,最终用户只会面临安全警告并确认是否执行,或者您可以让第三方公司签署一些$$$,例如VeriSign这样终端用户就不会面临安全警告。 不签名将导致applet根本无法运行。

您必须执行特定于操作系统的命令(通过Runtime.getRuntime().exec ),例如用于Windows的tasklist.exe和用于类Unix系统的ps

至于安全措施,我很确定它在标准的“沙箱”中是不可能的,但是“特权”applet可以做到。