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

时间:2010-06-10 20:54:14

标签: java applet security

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

感谢。

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

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

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