【问题标题】:Cross-platform executable/runtime delivery method跨平台可执行/运行时交付方法
【发布时间】:2008-12-08 16:16:46
【问题描述】:

我需要帮助来寻找最能满足以下要求的交付方式:

  • 我们希望向我的客户提供一个文件。
  • 客户端应该能够从操作系统 shell 启动此文件 - 就像在 Windows 上运行“.exe”一样。
  • 启动后,程序/脚本应该能够显示带有 HTML 内容的窗口。这可以使用独立程序、运行时或在浏览器中运行来完成。
  • 我们需要能够在交付的文件中嵌入资源,例如 mp3 文件,以后可以通过编程方式提取该文件。
  • 理想情况下,该解决方案应该在 Windows、Mac 和 Linux 机器上运行。不完美的跨平台互操作性是可以接受的,但我们希望尽可能广泛地渗透。
  • 客户不需要预先安装任何东西(除非它是透明地完成的)、预先配置任何东西或批准任何东西来实现这一点。

例如:

  • 我们可以使用用 C++ 编写的常规可执行文件来执行此操作,但它不是跨平台的。
  • 我们可以使用 sliverlight XAP 文件、adobe Flex 文件或 Java JAR,但 Internet Explorer 会在本地内容启动时警告用户。此外,这些方法意味着我们的穿透力不够完美,尽管在这些情况下是可以接受的。
  • 我们可以使用 python(或等效)脚本,但 python 解释器的安装基础(渗透)不够好。
  • 使用标准 HTML 是不够的,因为其中难以嵌入资源。在 HTML 中嵌入 Silverlight XAML 或 uuencoded 内容会导致 IE 显示警告。
  • 使用类似于 jpeg 的东西作为交付方法不够丰富,因为我们需要显示 HTML。

【问题讨论】:

    标签: java flash silverlight cross-platform


    【解决方案1】:

    ..但是当本地内容启动时,Internet Explorer 会警告用户..

    我不明白,IE 说“嘿,这个应用程序正在尝试运行 您的 文件!”有什么问题!

    我并不是说你没有充分的理由,只是,我不明白。

    IE 只会在应用程序尚未下载并尝试访问本地资源时向用户发出警告,例如,如果从小程序或类似 one: 的 JNLP 运行时@(单击您看到的第一个橙色按钮)

    但是如果用户下载jar并从计算机上运行它(双击它)应用程序是本地的并且可以毫无问题地运行。

    jar 文件毕竟是一个 zip 文件,所以你可以将你的 mp3 文件附在里面。所需平台支持双击,HTML 内容可以是本地文件(与 mp3 文件一起解压缩)或互联网网页。

    Java 已经预装在这些操作系统上。

    【讨论】:

    • 不保证用户已经预装了JVM。
    • 嗯,真的。至少它在所有 OSX 中。在所有可用选项中,java 是安装最多的选项。
    【解决方案2】:

    “当本地内容启动时,Internet Explorer 会警告用户”

    这是有原因的。他们如何将你优秀、行为端正、礼貌的应用程序与病毒区分开来?

    由于您的应用与病毒之间的界限非常非常模糊,因此请使用 Silverlight XAP 文件、adobe Flex 文件或 Java JAR 中的任何一个。

    IE 业务是好事,不是坏事。

    【讨论】:

      【解决方案3】:

      您可以尝试使用“Jetty”应用服务器。

      这假设目标机器上有一个工作的 java 环境。

      Jetty 是 java servlet 容器,但可以配置 一切(Web 服务器、html 模板、应用程序等)都在一个 单个可执行 jar,它启动 Web 服务器并打开一个默认页面。

      jar 文件的确切启动方式因平台而异 但否则用户界面将是相同的,并且作为一个 java 应用程序 你几乎可以做任何它已经开始的事情。

      【讨论】:

        【解决方案4】:

        听起来像 MIME HTML 完全符合您的要求 - 不幸的是,除 IE 之外的许多浏览器都不支持它。

        【讨论】:

          【解决方案5】:

          我会调查 Adob​​e AIR。它可以在桌面应用程序中显示 HTML 和 Flex 内容,而无需使用 Web 浏览器。但是,这将需要安装 AIR 运行时,我也不确定 Linux 版本是否已超出 beta 阶段。

          http://www.adobe.com/products/air/

          【讨论】:

          • 这个选项的问题是,据我所知,空气的安装基础非常有限。
          【解决方案6】:

          您还可以为每个平台使用二进制文件。

          根据您的描述,该应用程序非常简单,从一个 platf 移植到另一个听起来只是重新编译并提供基于 dist 的二进制文件。

          这是一个选项吗?

          【讨论】:

          • 我们需要提供一次交付 - 这意味着捆绑 3 个可执行文件。它是一种选择,但不是一个完美的选择。可执行文件也存在问题,因为客户端将它们与病毒相关联。
          猜你喜欢
          • 2017-11-08
          • 2011-06-30
          • 1970-01-01
          • 2021-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-07
          相关资源
          最近更新 更多