Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

Aller à la page :  1 2

# [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : EvilStef

Date : 06/12/2006 11:01

Bonjour à tous,

Suis étudiant en info et pour un projet je dois concevoir une petite appli java qui se lancera via le menu contextuel de FireFox.

L'appli était presque finalisée (du moins à l'arrache pour les tests), restait plus qu'à la lancer, donc extension firefox, xul+javascript, mais là, horreur !!!!!

Le but était de récupérer le texte selectionné sous firefox pour qu'il soit envoyé comme argument à notre appli (tableau de String ou String seul, bref apparemment pas trop lourd).

1er essai : lancement sans argument : (Code de la fonction de lancement de l'appli dans le js du .jar de chrome (si je suis pas clair faut le dire :p )

const path = "c:\\LearnGlish.jar";
var file = components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(path);
file.launch()

Là, pas de problemes, tout se passe bien ça lance sans arguments (le prog est prévu pour gérer).

Etape 2 : oula il faut faire un process pour lancer l'appli avec arguments, bon ok ... on test :

const path = "c:\\LearnGlish.jar";
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(path);
var args = "Hello you, How do you do, blabla"; 
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(file); 
process.run(false, args, args.length);

Voila, impossible de lancer quoi que ce soit. Resultat, recherche et encore recherche, pour se rendre comte qu'il existe visiblement d'autre manieres de faire (par exemple file.run(...) au lieu de process.run(...)) et qu'on trouve des incohérences monstre.

Bref, j'arrive pas à lancer ce foutu prog avec des arguments, donc si quelqu'un peut me débloquer ça m'aiderai énormément

D'avance merci !!!

Stef'

Ps : pour utiliser le texte selectionné comme arguments, au lieu de coder en dur on mettrait :

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

z'etes d'accord ???

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : Fabrice

Date : 06/12/2006 11:15

Oula pas de stress ;) tu m'as l'air bien nerveux...

pour que cela fonctionne args doit être un tableau. Donc:

var args = new Array("Hello, you, How do you do, blabla");

ça devrait marcher bien mieux ;)

bon courage,

Fabrice

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : EvilStef

Date : 06/12/2006 11:39

non je suis pas nerveux, mais ça commence juste à me mettre les nerfs c tout ;)

Bon j'essaye ça ;)

Par contre si ça resoud le probleme des arguments passés en dur, ça m'aide pas pour la selection, mais bon j'essaye :)

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : Jojo

Date : 06/12/2006 11:58

Bon, j'suis dans la même classe que l'autre surexcité, et on est dans la même mouisse : impossible de lancer un programme java par process.run(...)

Message renvoyé par la console firefox :

Erreur : uncaught exception: [Exception... "Component returned failure code: 0x80520003 (NS_ERROR_FILE_EXECUTION_FAILED) [nsIProcess.run]"  nsresult: "0x80520003 (NS_ERROR_FILE_EXECUTION_FAILED)"  location: "JS frame :: chrome://print/content/printOverlay.js :: onPrintPage :: line 50"  data: no]

grosso modo, ca semble dire que le fichier n'est pas executable...

Par contre, en remplacant la référence au fichier .jar à un fichier .exe, le fichier se lance sans aucun problème.

D'où ma question : est-il possible de lancer directement un fichier .jar par la commande process.run(...) ? Si non, existe-t-il une facon de contourner directement le problème ? J'ai bien pensé à faire une fichier .exe en C pour lancer l'application java en passant par la commande System(...) mais je trouve ça assez bourrin...

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : laurentj

Date : 06/12/2006 12:52

ca semble dire que le fichier n'est pas executable...

Ba oui. Depuis quand un .jar est un executable ??? Je pense que plutôt d'appeler le .jar, il faut que vous appeliez la commande java tout simplement ! (pas besoin de faire un prog en C ou autre..)

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : EvilStef

Date : 06/12/2006 12:57

ben un jar est un fichier java executable en plus d'etre une archive ...

avec launch y'a pas de prob, il cherche tout seul de quoi le lancer, mais pour lancer la commande en direct, je crois pas que ça passe ...

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : laurentj

Date : 06/12/2006 13:03

non, un jar n'est pas exécutable au sens "système". C'est juste une archive. Quand on lance un jar, il est exécuté par java, tout simplement parce que ton explorateur sait ce qu'il faut lancer quand tu veux exécuter le contenu d'un jar.

Le vrai exécutable, c'est le programme java, en lui donnant en argument ton fichier jar ainsi que les arguments nécessaire à ton appli.

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : papy

Date : 06/12/2006 13:04

Petit rapelle, un .jar n'est ni plus ni moins qu'une archive, après c'est Win**** qui interprête ca et qui le lance comme il faut, c'est à dir comme suis si je me rapelle bien

java -jar /chemin/vers/fichier.jar

Après je ne sais pas comment ca se passe pour lui passer des paramètres, peut etre tout simplement

java -jar /chemin/vers/fichier.jar arg1 arg2 ...

mais ca reste à tester. Pour tester tout ca sous windows ouvre une console et tape ca direct dedans, si tu veux que ca passe depuis firefox il va falloir que ca passe depuis la console avant ;)

Si il ne trouve pas java, 2 possibilités :

  • soit tu ajoute le chemin vers l'executable java dans la variable systeme PATH
  • soit tu remplace java par le chemin complet, genre c:\Program Files\sun-blabla\java

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : EvilStef

Date : 06/12/2006 13:07

Euh là on s'éloigne les gars ...

Le but c pas de lancer le java tout seul, ça y'a pas trop de problemes que ça soit de win ou nux ...

Le probleme c de le lancer A PARTIR du javascript, justement y'a la maniere "launch" qui passe tant qu'il n'y a pas d'arguments, mais quand il y en a faut un process ...

Si c'était si facile que de clamper un "java -jar xxx.jar xx1 xx2" je viendrai pas vous embéter sur ce forum spécialisé ...

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : laurentj

Date : 06/12/2006 13:09

non on s'eloigne pas. Tu nous montre un exemple où tu veux lancer directement un .jar. Nous on te dit de ne pas lancer le .jar, mais de lancer l'executable "java", ce que tu sembles ne pas avoir tester puisque tu nous a pas dit si tu l'avais fait ou non.

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : laurentj

Date : 06/12/2006 13:16

En d'autres termes, est ce que tu as essayé un truc comme ça ?

const path = "c:\\program files\\.......java";
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(path);
var args = ["-jar", "tontruc.jar"]
var process =  Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(file); 
process.run(false, args, args.length);

(pour les paramètres exacts à passer, voir la doc de l'exécutable java)

PS: si ça marche pas, y a peut être des histoires de variables d'environnement ou autre, genre classpath...)

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : EvilStef

Date : 06/12/2006 13:23

Bon, ok, je me tais ...

J'avais pas bien compris cque tu voulais faire ... mais certes ...

Bon ben ça me lance bien mon truc, reste à réussir à déjà des guillemets qui m'empechent de chopper mes param, mais ça a l'air bon !!

Je te suis tres reconnaissant :) :) :)

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : laurentj

Date : 06/12/2006 13:25

De rien :-)

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : EvilStef

Date : 06/12/2006 13:46

Petite note :

Y'a une maniere de simplifier les choses et "d'augmenter" la portabilité de l'outil je pense, utiliser un utilitaire comme JSmooth, qui permet de créer un .exe à partir d'un .jar, ce qui permet de lancer le process avec la methode tentée au début ...

Le vrai probleme était bien le travail sur le .jar qui n'est, en effet, qu'une archive ...

Merci encore pour le coup de main !!

# Re: [Please Help!!!] Lancement d'appli ->> Gros soucis !!!

Envoyé par : MehdiB

Date : 12/12/2006 16:08

Bonsoir à tous,

Je veux faire la même chose à partir de mon interface XUL. Exécuter le fichier que j'ai appelé ajoutPhoto.java Lorsque je l'exécute en commande en ligne je fais: java ajoutPhoto chemin_de_la_photo et ca marche très bien donc mon argument c'est bien chemin_de_la_photo je l'ai mis dans ma fonction javascript comme suit: var args = "chemin_de_la_photo";

Mais a priori ca marche pas, puisque la foto n'est pas ajoutée alors que ca s'ajoute quand j'execute en commande en ligne. D'autre part, j'avais mis au début dans le path, l'url chrome de ajoutPhoto.java mais il ne l'a pas trouvé NS_ERROR_FILE_UNRECOGNIZED_PATH donc j'ai mis le chemin "/home/mehdi/Desktop/ajoutPhoto.java" Il n' ya plus d'erreurs, mais pas de résultats non plus...

SVP aidez moi..!

Aller à la page :  1 2

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.