2010-06-10 71 views
3

我想使用在瀏覽器中運行的java applet來獲取運行進程的列表。我的理解是,只要applet已經簽名,它就能夠獲得這些信息。這是否準確?這可能與一個未簽名的小程序?最後,有沒有可用的FOS小程序,我可以看看?是否可以使用applet獲取正在運行的進程的列表?

謝謝。

回答

3

一個小程序需要每當它想要訪問/執行本地系統資源時被簽名。這包括執行Runtime#exec()ProcessBuilder,這需要能夠獲取正在運行的進程的列表。

你可以找到here一個基本的例子如何在Windows中獲取該列表。在繼續之前,我建議檢查if (System.getProperty("os.name").startsWith("win"))

將給定示例移植到applet中並不難,只需讓該類擴展JApplet並從AccessController#doPrivileged()內部執行整個代碼即可。

至於簽名小程序,您可以對其簽名manually,最終用戶只會面臨安全警告,並確認是否執行該安全警告,或者您可以讓第三方公司簽署一些$$ $,例如VeriSign,這樣最終用戶將不會面臨安全警告。不簽名會導致applet無法運行。

0

您必須執行特定於操作系統的命令(通過Runtime.getRuntime().exec),如tasklist.exe(適用於Windows)和ps(適用於類Unix系統)。至於安全措施,我敢肯定它在標準「沙箱」中是不可能的,但是「特權」applet可以做到這一點。

相關問題