是否仍有可能通过浏览器中的java applet在windows下启动“原生”应用程序? IE“点击这里开始notepad.exe”在网页上。我能找到的最新参考文献是2002年的。我想知道这个模型/概念是否不再支持。Java applet:从浏览器运行本机代码?
回答
是的,但小程序必须签名。
Signed applets会提示用户给他们许可。一旦得到,小程序就具有与机器上运行的任何应用程序相同的权限,包括启动本机应用程序(或链接本机库,我过去必须执行的操作)。
这样做的便携方式是创建一个signed Applet。
..是否仍然可以通过浏览器中的java applet在windows下启动“本机”应用程序?
当然可以。正如其他答复中提到的,已签名(且受信任)的小程序可以使用Runtime.exec(String)
来启动本机应用程序。
从Java 1.6开始,随着Dekstop.getDesktop.open(File)
的实现变得更加简单,该操作将打开选定的File
,该操作将OS注册为该文件类型的使用者。
Sun的Plugin2架构(1.6.0_10 +在Sun/Oracle的JRE)的提供了一个更通用的方法为(沙箱)小程序嵌入到网页中,使用JNLP API的BasicService
。这里是我的demo. of the BasicService
不知道桌面的东西(有没有机会使用1.6)你可以做一个EXE的Desktop.open()方法启动它?这是否在未签名的小程序中工作,还是需要签名? – Herms 2011-06-02 15:56:20
@Herms:一个applet需要被信任使用'Desktop'类的方法。 – 2011-06-02 15:59:35
BasisService仍然不提供启动本机应用程序,是吗?或者你使用'file:'URL来运行本地应用程序? – 2011-06-02 18:19:47
你尝试了你发现的方法吗?它工作? – Mat 2011-06-02 14:44:55
它太旧了,以至于一些软件包不再可用。让它构建超越了我。 – ethrbunny 2011-06-02 14:46:28
这里是一个IE解决方案:http://codereflex.net/how-to-run-exe-on-webpage/ - >我需要一些浏览器中立,虽然。 – ethrbunny 2011-06-02 14:50:53