跨平台可执行/运行时传递方法

时间:2021-09-02 12:28:47

I need assistance finding a delivery method that best fulfills the following requirements:

我需要帮助找到最符合以下要求的交付方法:

  • We wish to deliver a single file to my clients.
  • 我们希望向客户提供单个文件。

  • Clients should be able to launch this file from the operating system shell - much like running an '.exe' on Windows.
  • 客户端应该能够从操作系统shell启动此文件 - 就像在Windows上运行'.exe'一样。

  • After being launched, the program/script should be able to display a window with HTML content. this may be done using a stand alone program, a runtime or by running within a browser.
  • 启动后,程序/脚本应该能够显示包含HTML内容的窗口。这可以使用独立程序,运行时或在浏览器中运行来完成。

  • We need the ability to embed a resource within the delivered file, such as an mp3 file, which i can later extract programmatically.
  • 我们需要能够在交付的文件中嵌入资源,例如mp3文件,我可以稍后以编程方式提取。

  • Optimally, the solution should run on Windows, Mac and Linux machines. Less than perfect cross-platform interoperability is acceptable, but we want as broad a penetration as possible.
  • 最理想的是,该解决方案应该在Windows,Mac和Linux机器上运行。不太理想的跨平台互操作性是可以接受的,但我们希望尽可能广泛地渗透。

  • Clients should not need to pre-install anything (unless it is done transparently), pre-configure anything, or approve any thing for this to happen.
  • 客户端不需要预先安装任何东西(除非它是透明地完成),预配置任何东西,或批准任何事情发生。

For example:

  • We could use a regular executable file, written in C++ to do this, but it will not be cross-platform.
  • 我们可以使用用C ++编写的常规可执行文件来执行此操作,但它不会是跨平台的。

  • We could use a sliverlight XAP file, an adobe Flex file or a Java JAR, but internet explorer warns users when local content is launched. In addition these approaches mean that we have less than perfect penetration, even though it is acceptable in these cases.
  • 我们可以使用sliverlight XAP文件,adobe Flex文件或Java JAR,但是当启动本地内容时,Internet Explorer会警告用户。此外,这些方法意味着我们的渗透率不尽如人意,即使在这些情况下可以接受。

  • We could use a python (or equivalent) script, but the installed-base (penetration) of the python interpreter is not good enough.
  • 我们可以使用python(或等效的)脚本,但python解释器的安装基础(渗透)不够好。

  • Using a standard HTML is not enough because of the difficulty of embedding resources in it. Embedding Silverlight XAML or uuencoded content in HTML causes IE to display a warning.
  • 使用标准HTML是不够的,因为在其中嵌入资源很困难。在HTML中嵌入Silverlight XAML或uuencoded内容会导致IE显示警告。

  • Using something along the lines of a jpeg as a delivery method is not rich enough since we need to display HTML.
  • 因为我们需要显示HTML,所以使用jpeg作为传递方法的东西是不够丰富的。

6 个解决方案

#1


2  

..but internet explorer warns users when local content is launched..

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

I don't get it, what's the problem with IE saying "Hey this app is trying to run your files!"

我不明白,IE的问题是“嘿,这个应用程序试图运行你的文件!”

I don't mean you don't have a good reason for this, it is just, I don't get it.

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

IE will only warn the user if the app has not been downloaded and try to access local resources, for instance if running from an applet or a JNLP like this one:(click on the first orange button you see )

IE将仅警告用户是否尚未下载应用程序并尝试访问本地资源,例如,如果从applet或JNLP运行,请执行以下操作:(单击您看到的第一个橙色按钮)

But if the users download the jar and run it from the computer ( double click on it ) the app is local and can run without problems.

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

The jar file is a zip file after all, so you can attach your mp3 file with it. Double click is supported in the desired platform, and the HTML content could be either a local file ( un-packed along with the mp3 file ) or an internet web page.

jar文件毕竟是一个zip文件,所以你可以附上你的mp3文件。在所需平台中支持双击,并且HTML内容可以是本地文件(与mp3文件一起未打包)或互联网网页。

Java is preinstalled on those OS already.

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

#2


0  

"internet explorer warns users when local content is launched"

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

There's a reason for this. How can they distinguish your excellent, well-behaved, polite application from a virus?

这是有原因的。他们如何区分您的优秀,乖巧,礼貌的应用程序与病毒?

Since the line between your app and a virus is very, very blurry, go with any of Silverlight XAP file, an adobe Flex file or a Java JAR.

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

The IE business is a good thing, not a bad thing.

IE业务是一件好事,也不是坏事。

#3


0  

You could try using the 'Jetty' application server.

您可以尝试使用'Jetty'应用程序服务器。

This supposes there is a working java environment on the target machine.

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

Jetty is java servlet container but it is possible to configure everything (web server, html templates, applications, etc.) in a single executable jar, which launches the web server and opens a default page.

Jetty是java servlet容器,但可以在一个可执行jar中配置所有内容(Web服务器,html模板,应用程序等),从而启动Web服务器并打开默认页面。

Exactly how the jar file is launched will vary from platform to platform but otherwise the user interface will be identicle, and, as its a java application you can do pretty much anything one it has started.

jar文件的确切启动方式因平台而异,但用户界面将是identicle,而且,作为一个java应用程序,你几乎可以做任何已启动的文件。

#4


0  

Sounds like MIME HTML does exactly what you want - unfortunately, it is not supported by many browsers other than IE.

听起来像MIME HTML正是你想要的 - 不幸的是,IE以外的许多浏览器都不支持它。

#5


0  

I'd investigate Adobe AIR. It can display both HTML and Flex content in a desktop application without using a web browser. However this will require installation of the AIR runtime, also I'm not sure if the Linux version is out of the beta stage.

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

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

#6


0  

You can also use a binary for each platform.

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

As per your description the app is very simple, and porting from one platf to another sounds like just matter of re-compile and offer binary based on the dist.

根据你的描述,应用程序非常简单,从一个平台移植到另一个平台听起来像是重新编译的问题,并根据dist提供二进制文件。

Is this an option?

这是一个选择吗?

#1


2  

..but internet explorer warns users when local content is launched..

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

I don't get it, what's the problem with IE saying "Hey this app is trying to run your files!"

我不明白,IE的问题是“嘿,这个应用程序试图运行你的文件!”

I don't mean you don't have a good reason for this, it is just, I don't get it.

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

IE will only warn the user if the app has not been downloaded and try to access local resources, for instance if running from an applet or a JNLP like this one:(click on the first orange button you see )

IE将仅警告用户是否尚未下载应用程序并尝试访问本地资源,例如,如果从applet或JNLP运行,请执行以下操作:(单击您看到的第一个橙色按钮)

But if the users download the jar and run it from the computer ( double click on it ) the app is local and can run without problems.

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

The jar file is a zip file after all, so you can attach your mp3 file with it. Double click is supported in the desired platform, and the HTML content could be either a local file ( un-packed along with the mp3 file ) or an internet web page.

jar文件毕竟是一个zip文件,所以你可以附上你的mp3文件。在所需平台中支持双击,并且HTML内容可以是本地文件(与mp3文件一起未打包)或互联网网页。

Java is preinstalled on those OS already.

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

#2


0  

"internet explorer warns users when local content is launched"

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

There's a reason for this. How can they distinguish your excellent, well-behaved, polite application from a virus?

这是有原因的。他们如何区分您的优秀,乖巧,礼貌的应用程序与病毒?

Since the line between your app and a virus is very, very blurry, go with any of Silverlight XAP file, an adobe Flex file or a Java JAR.

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

The IE business is a good thing, not a bad thing.

IE业务是一件好事,也不是坏事。

#3


0  

You could try using the 'Jetty' application server.

您可以尝试使用'Jetty'应用程序服务器。

This supposes there is a working java environment on the target machine.

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

Jetty is java servlet container but it is possible to configure everything (web server, html templates, applications, etc.) in a single executable jar, which launches the web server and opens a default page.

Jetty是java servlet容器,但可以在一个可执行jar中配置所有内容(Web服务器,html模板,应用程序等),从而启动Web服务器并打开默认页面。

Exactly how the jar file is launched will vary from platform to platform but otherwise the user interface will be identicle, and, as its a java application you can do pretty much anything one it has started.

jar文件的确切启动方式因平台而异,但用户界面将是identicle,而且,作为一个java应用程序,你几乎可以做任何已启动的文件。

#4


0  

Sounds like MIME HTML does exactly what you want - unfortunately, it is not supported by many browsers other than IE.

听起来像MIME HTML正是你想要的 - 不幸的是,IE以外的许多浏览器都不支持它。

#5


0  

I'd investigate Adobe AIR. It can display both HTML and Flex content in a desktop application without using a web browser. However this will require installation of the AIR runtime, also I'm not sure if the Linux version is out of the beta stage.

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

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

#6


0  

You can also use a binary for each platform.

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

As per your description the app is very simple, and porting from one platf to another sounds like just matter of re-compile and offer binary based on the dist.

根据你的描述,应用程序非常简单,从一个平台移植到另一个平台听起来像是重新编译的问题,并根据dist提供二进制文件。

Is this an option?

这是一个选择吗?