2008-12-08 7 views
2

j'ai besoin d'aide pour trouver une méthode de livraison qui répond le mieux aux exigences suivantes:exécutable multi-plateforme/méthode de livraison d'exécution

  • Nous désirons offrir un seul fichier à mes clients.
  • Les clients doivent être en mesure de lancer ce fichier à partir du shell du système d'exploitation, un peu comme s'ils exécutaient un fichier ".exe" sous Windows.
  • Après avoir été lancé, le programme/script devrait être capable d'afficher une fenêtre avec du contenu HTML. Cela peut être fait en utilisant un programme autonome, une exécution ou en cours d'exécution dans un navigateur.
  • Nous avons besoin de la possibilité d'incorporer une ressource dans le fichier livré, tel qu'un fichier mp3, que je peux extraire ultérieurement par programmation.
  • Idéalement, la solution devrait fonctionner sur les machines Windows, Mac et Linux. Une interopérabilité entre plates-formes moins que parfaite est acceptable, mais nous voulons une pénétration aussi large que possible.
  • Les clients ne devraient pas avoir à pré-installer quoi que ce soit (à moins que ce soit fait de manière transparente), à ​​pré-configurer n'importe quoi, ou à approuver n'importe quoi pour que cela se produise.

Par exemple:

  • Nous pourrions utiliser un fichier exécutable régulier, écrit en C++ pour ce faire, mais il ne sera pas multi-plateforme.
  • Nous pourrions utiliser un fichier XAP sliverlight, un fichier adobe Flex ou un Java JAR, mais Internet Explorer avertit les utilisateurs lorsque du contenu local est lancé. En outre, ces approches signifient que nous avons une pénétration moins que parfaite, même si elle est acceptable dans ces cas.
  • Nous pourrions utiliser un script python (ou équivalent), mais la base installée (pénétration) de l'interpréteur python n'est pas assez bonne.
  • L'utilisation d'un code HTML standard n'est pas suffisante en raison de la difficulté d'incorporation de ressources dans celui-ci. L'incorporation de contenu Silverlight XAML ou uuencoded dans HTML entraîne l'affichage d'un avertissement par IE.
  • L'utilisation de quelque chose comme jpeg comme méthode de livraison n'est pas assez riche car nous devons afficher du HTML.

Répondre

2

..mais Internet Explorer avertit les utilisateurs lorsque le contenu local est lancé ..

Je ne comprends pas, quel est le problème avec IE en disant « Hé cette application tente d'exécuter vos fichiers! " Je ne veux pas dire que vous n'avez pas une bonne raison à cela, c'est juste, je ne comprends pas.

IE n'avertit l'utilisateur si l'application n'a pas été téléchargé et essayer d'accéder aux ressources locales, par exemple en cas d'exécution d'une applet ou d'un JNLP comme celui-ci one: (cliquez sur le premier bouton orange que vous voyez)

Mais si les utilisateurs téléchargent le fichier jar et l'exécutent à partir de l'ordinateur (double-cliquez dessus), l'application est locale et peut s'exécuter sans problème. Le fichier jar est un fichier zip après tout, de sorte que vous pouvez joindre votre fichier mp3 avec celui-ci. Le double clic est pris en charge dans la plate-forme souhaitée, et le contenu HTML peut être un fichier local (non compressé avec le fichier mp3) ou une page Web.

Java est déjà préinstallé sur ces systèmes d'exploitation.

+0

Il n'y a aucune garantie que l'utilisateur dispose de la machine virtuelle Java préinstallée. –

+0

Mhhh vrai. Au moins, c'est dans tout OSX. De toutes les options disponibles, java est celui qui a le plus d'installations. – OscarRyz

0

"Internet Explorer avertit les utilisateurs lorsque le contenu local est lancé"

Il y a une raison pour cela. Comment peuvent-ils distinguer votre excellente application bien polie d'un virus? Comme la ligne entre votre application et un virus est très, très floue, rendez-vous avec n'importe quel fichier Silverlight XAP, un fichier adobe Flex ou un fichier Java JAR.

Le commerce IE est une bonne chose, pas une mauvaise chose.

0

Vous pouvez essayer d'utiliser le serveur d'application 'Jetty'.

Cela suppose qu'il existe un environnement Java actif sur la machine cible.

Jetty est conteneur de servlet java, mais il est possible de configurer tout (serveur web, modèles html, applications, etc.) dans un bocal seul exécutable , qui lance le serveur Web et ouvre une page par défaut.

Exactement comment le fichier jar est lancé variera d'une plateforme à mais sinon l'interface utilisateur sera identicle, et, comme une application java vous pouvez faire à peu près tout ce qu'on a démarré.

0

Semble comme MIME HTML fait exactement ce que vous voulez - malheureusement, il n'est pas pris en charge par de nombreux navigateurs autres que IE.

0

Je recherchais Adobe AIR. Il peut afficher du contenu HTML et Flex dans une application de bureau sans utiliser de navigateur Web. Cependant, cela nécessitera l'installation de l'environnement d'exécution AIR, mais je ne suis pas sûr que la version Linux soit en dehors de la phase bêta.

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

+0

Le problème avec cette option est que la base d'air installée, pour autant que je sache, est très limitée. –

0

Vous pouvez également utiliser un binaire pour chaque plate-forme. Selon votre description, l'application est très simple, et le portage d'un platf à l'autre semble juste comme une question de re-compilation et offre binaire basé sur le dist.

Est-ce une option?

+0

Nous devons fournir une livraison unique - ce qui signifie regrouper 3 exécutables. C'est une option, mais pas parfaite. Les exécutables sont également problématiques car les clients les associent à des virus. –

+0

Et avec une bonne raison. :) – OscarRyz

Questions connexes