繁体   English   中英

不再支持Java小程序-有什么替代方法? (文件操作-Shell命令)

[英]Java applets are no longer supported - what's the alternative? (File manipulation - shell commands)

我有一个关于如何从浏览器操作文件的问题,当前我们正在使用Java小程序。 要创建一些文件夹,请替换/删除保存一些文件/文件夹,然后执行带有参数的shell命令。 我们知道Chrome不再支持npapi及其Java小程序,FireFox将很快跟进,我的猜测是IE不会永远落后。

所以实际的问题是最好的方法是什么? 我们是否应该考虑创建插件(但是应该在所有主流浏览器上都这样做-很多工作)

还是建议您安装一个外部程序,我们可以在用户系统上启动什么程序? 通过例如关联特定的扩展名,还是通过添加url方案?

Java Web Start呢? 这是否使我们能够与多米诺API通信?

还有其他更好的技术吗?

我们正在构建的网站正在使用IBM Domino 9.0.1 XPages(JSF)。

回答您的用例:内容管理系统。

要添加文件,HTML5文件API应该可以满足您的所有需求。 有很多示例,包括多文件上传。

当您要提供往返编辑体验时,它将变得更加棘手。 就像单击某些内容一样,Word,Excel,Impress,Photoshop将打开并进行编辑。 保存后,一切都将回到Domino。

这里的解决方案是wevDAV。 您甚至可以将Domino视图显示为Explorer / Finder / Nautilus中的文件夹。

对于Domino,在OpenNTF上有一个项目,该项目为Domino上的文档/附件实现了WebDAV(我写过)。 这可能是您最好的选择。

我认为我们应该在这里做出区分:

  • 可以使用HTML5文件访问来完成诸如文件访问之类的操作,但是
  • 诸如本地管理之类的事情绝对不是必需的,也不应该在浏览器中完成。

实际上,我一直很讨厌Java建议用户“不需要安装任何软件”来执行此操作,而考虑到他们下载了Java软件,这是一个谎言,这是直截了当的谎言,必须告诉其Java Policy框架信任并且然后该软件就可以进行本地更改。 就像下载任何(签名的)可执行文件并让您的用户执行它一样不安全。

看起来,Java的可移植性¹不适用于您的用例; “执行shell命令”听起来似乎不可移植。 因此,最后,您要么只拥有一个要解决的平台,要么为每个平台提供一个解决方案,在这种情况下,您将无法获得可移植性,因为同一Java可执行文件可以在所有JRE上运行(即使是这种情况) 。

我会说:现在是让Java for Desktops死掉的好时机,尤其是因为您似乎并没有在应用程序中做任何Java擅长的事情。

听起来,一般的安装程序框架可以完成您想要的操作,而无需编写任何代码。 那里有很多东西,尤其是对于Windows,您似乎正在解决这个问题。 以微软的.MSI为例。 最后,您将获得一个两点击,可签名,可信任,可更新的解决方案,该解决方案不需要用户完全安装或保护JRE。

澄清 :我真的不讨厌 Java。 我认为这不是最出色的语言,也不是拥有最好的生态系统,但是使您的应用程序正常工作的任何方法都可以。

现在,您提到:

明确地说,我们正在创建一个文档管理系统,该系统曾经在Lotus Notes客户端上,并且正在尝试移植到Web上。

实际上,这听起来似乎是选择任何浏览器并将其嵌入的一个好主意。 实际上,Firefox“仅仅是”一个围绕浏览器核心的应用程序,您可以根据需要修改(例如通过编写扩展名)。 这样,它并不是真正的“ Web应用程序”,但可以满足您与Web应用程序集成和本地管理访问的要求。 我还建议您三思而后行,以了解您需要在本地运行的Shell脚本-也许可以比其他Web程序以本地特权调用它们的工作更容易地被另一个程序甚至是“与Web兼容”的东西代替。


¹(这在当时是一件大事,但老实说,如今的Java应用程序的可移植性与台式机操作系统上基于.NET或Qt的应用程序的平均水平一样,但从来没有完全像家一样-就像可移植性丑陋的姐妹一样 ,您是便携式的,但仅在每个平台上提供功能和外观的最小通用子集)

²...不管是什么!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM