Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# Integrer completement un executable dans l'extension

Envoyé par : EvilStef

Date : 07/12/2006 12:34

Salut à tous ;)

Comme déjà dit dans mon précédent sujet, je créé une extension FF qui lance une petite appli Java.

Pour le lancement, en spécifiant le chemin complet de l'appli (sous windows ici "C:\blabla.exe") ça tourne maintenant sans probleme.

Je voudrai maintenant intégrer completement l'executable dans mon .xpi pour que l'extension soit d'un bloc, ce qui serait plus pratique ...

Seule chose, où la mettre dans mon archive ? et quel sera alors son chemin d'acces ?

Pour Linux, peut-on faire de meme avec le .exe ? ou faut-il lancer java et mettre le fichier .jar en parametre ?!

D'avance merci !!!

Stef'

PS : je précise que l'appli est lancée apres selection d'un texte sur une page web par le menu contextuel ...

# Re: Integrer completement un executable dans l'extension

Envoyé par : papy

Date : 07/12/2006 13:57

Alors pour linux la réponse est non, pas moyen de lancer un .exe Apres tu peux faire un executable linux mais c'est une autre histoire et ca sera forcement different. Du coup si tu veux que ton truc soit multiplateforme il faut que tu utilise la méthode java -jar, ca marchera partout à partir du moment ou il y a une jvm installée (et le système configuré pour).

Sinon dans ton xpi tu peux mettre ton archive dans content, genre content/extdata/monappli.jar, enfin ou tu veux sous content en fait. Apres il faudra transformer l'url de type chrome://monappli/content/extdata/monappli.jar en chemin d'accès standard, pour ca regarde ce post

# Re: Integrer completement un executable dans l'extension

Envoyé par : EvilStef

Date : 08/12/2006 09:49

hum ça veut toujours pas ...

le probleme déjà c qu'il doit chercher Java, donc faut bien lui spécifier un chemin non ?

J'ai un truc dans ce gout là :

// Recuperation de la selection pour l'argument //

var selection = "\""+document.commandDispatcher.focusedWindow.getSelection().toString()+"\"";

// // Lanceur de l'applic //

const path = "c:\\Program Files\\Java\\bin\\java.exe";
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(path);
var args = ["-jar", "chrome://print/content/extdata/LearnGlish.jar",selection];
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(file); 
process.run(false, args, args.length);

Alors là il trouve java c'est bon, (mais si je mets juste "java" il le choppe pas ...(ce qui va etre chiant sous nux)) mais visiblement il trouve par le programme (alors qu'il est bien dans chrome/print.jar/content/extdata ... (au passage pour faire mon extension, suis obligé de mettre content, locale dans un jar ? (à tout hazard hein ;)))

D'avance merci

# Re: Integrer completement un executable dans l'extension

Envoyé par : papy

Date : 08/12/2006 10:11

En ce qui concerne le lancement de java :

Mettre le chemin vers l'éxécutable java c'est bien joli mais sur une autre plateforme (Linux par exemple) ou sur une machine ou on a installé java ailleurs, ca ne marchera pas...

Dans ce cas la l'idéal est de lancer juste java et de laisser au système d'exploitation le soin de chercher l'exécutable (ceci est fait via la variable globale PATH sous linux comme sous windows). Seul petit soucis que je peut envisager, nsIProcess attend directement un fichier est la ca coince. Une solution serait de récupérer la variable système PATH et de parcourir les répertoire à la recherche du fichier exécutable, mais bon...

En ce qui concerne le lancement de ton jar, tu lui donne comme chemin chrome://print/content/extdata/LearnGlish.jar, mais le système d'exploitation il ne connait pas ca, il faut que tu le convertisse d'abord en chemin système (voir un post récent sur le sujet)

# Re: Integrer completement un executable dans l'extension

Envoyé par : laurentj

Date : 11/12/2006 15:34

pourquoi mettre le .jar dans le chrome ? (aprés tout, il n'a rien à voir avec le chrome)

Pourquoi ne pas le mettre à la racine de l'extension tout simplement ?

# Re: Integrer completement un executable dans l'extension

Envoyé par : EvilStef

Date : 11/12/2006 22:08

ben peu importe, j'ai demandé où était le meilleur endroit et papy m'a conseillé ça, apres si tu as une autre vision des choses, je suis pas contre du tout ;)

# Re: Integrer completement un executable dans l'extension

Envoyé par : MehdiB

Date : 12/12/2006 18:24

Bonsoir,

je tiens à vous informer que sur linux si on met "java" seulement ca ne marche pas, moi ce que j'ai fait, j'ai mis le path entier soit "/usr/bin/java". dans ce cas la, il trouve le fichier java, par contre qd je met dans les arguments le chemin vers mon fichier java ca marche pas, j'au utilisé ta fonction papy pour déterminer le chemin à partir de l'url chrome (puisque j'ai placé mon .java dans le paquetage de mon application) mais ca marche tjs pas.

Si vous pouvez m'aider.. Merci d'avance.

# Re: Integrer completement un executable dans l'extension

Envoyé par : EvilStef

Date : 12/12/2006 20:44

ben je t'ai déjà répondu dans l'autre post ...

sous linux c'est certain qu'il faudra aller chercher java, java tout seul (à moins qu'il aille chercher direct ds le PATH y'a peu de chances que ça marche).

Par contre si tu mets ton .java ds le pack, y'a de grandes chances aussi que ça ne marche pas, faut mettre un .class ou un .jar, il executera jamais un .java vu qu'il est pas compilé ;)

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.