IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Lancer un jar à partir d'un programme java


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut Lancer un jar à partir d'un programme java
    Bonjour,

    J'intègre un fichier jar que l'on m'a fourni dans une application java que je développe. Comment puis-je l'exécuter ?
    La documentation dit de le lancer en ligne de commandes mais je dois l'intéger dans un programme. Est-ce possible ?

    Pour le moment, j'ai rajouté un "external jar" dans le projet eclipse mais je ne trouve pas le moyen de lancer le main. J'ai deux erreurs :

    Error 2006-06-06 17:13:08.522 Unhandled event loop exception
    et

    Error 2006-06-06 17:13:08.522 java.lang.NullPointerException
    java.lang.NullPointerException
    at org.eclipse.jdt.internal.corext.util.JavaModelUtil.getAllSuperTypes(JavaModelUtil.java:1015)
    at org.eclipse.jdt.internal.debug.ui.launcher.JavaElementPropertyTester.isApplet(JavaElementPropertyTester.java:75)
    at org.eclipse.jdt.internal.debug.ui.launcher.JavaElementPropertyTester.test(JavaElementPropertyTester.java:59)
    at org.eclipse.core.internal.expressions.Property.test(Property.java:52)
    at org.eclipse.core.internal.expressions.TestExpression.evaluate(TestExpression.java:57)
    at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:47)
    at org.eclipse.core.internal.expressions.IterateExpression.evaluate(IterateExpression.java:107)
    at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:47)
    at org.eclipse.core.internal.expressions.WithExpression.evaluate(WithExpression.java:37)
    at org.eclipse.core.internal.expressions.CompositeExpression.evaluateAnd(CompositeExpression.java:47)
    at org.eclipse.core.internal.expressions.EnablementExpression.evaluate(EnablementExpression.java:29)
    at org.eclipse.debug.internal.ui.launchConfigurations.LaunchShortcutExtension.evalEnablementExpression(LaunchShortcutExtension.java:226)
    at org.eclipse.debug.ui.actions.ContextualLaunchAction.isApplicable(ContextualLaunchAction.java:270)
    at org.eclipse.debug.ui.actions.ContextualLaunchAction.fillMenu(ContextualLaunchAction.java:184)
    at org.eclipse.debug.ui.actions.ContextualLaunchAction$1.menuShown(ContextualLaunchAction.java:131)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:117)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:843)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:867)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:848)
    at org.eclipse.swt.widgets.Control.WM_INITMENUPOPUP(Control.java:3337)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:3064)
    at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1582)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:3751)
    at org.eclipse.swt.internal.win32.OS.TrackPopupMenu(Native Method)
    at org.eclipse.swt.widgets.Menu._setVisible(Menu.java:225)
    at org.eclipse.swt.widgets.Display.runPopups(Display.java:3151)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2752)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1699)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:367)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:143)
    at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:103)
    at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:226)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:376)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:163)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
    at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
    at org.eclipse.core.launcher.Main.run(Main.java:973)
    at org.eclipse.core.launcher.Main.main(Main.java:948)

    Pouvez-vous me conseiller svp ?
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut
    Merci pour votre réponse rapide.
    Il n'y a donc pas moyen de le lancer en utilisant les méthodes internes au package.

    Merci beaucoup.

  4. #4
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Si tu connais la classe qui contient la methode main tu peus peut-être l'appeler (si tu ne la connais pas il me semble quelle est indiquée dans le manifest du jar).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClasseDeLancement.main("arg1", "arg2" /*...*/);
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut
    C'est exactement ce que je voulais faire. Mais le compilateur me génère deux belles erreurs que j'ai collé dans mon premier message.

    Je l'ai appelé de cette manière :
    PrepareImportFile test = new PrepareImportFile();
    test.main(System.getProperty("user.dir") + "\\fichier1.txt", System.getProperty("user.dir") + "\\fichier2.txt", System.getProperty("user.dir") + "\\keyp.txt");
    et la doc demandait de lancer le jar de cette manière :
    java -cp fichier_jar.jar com.datalog.truc.PrepareImportFile fichier1 fichier2 -f cle.txt
    Je le mets au cas où il te vienne une idée.
    Je vais essayer de creuser un peu plus, merci.

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    A priori ta commande semble coller avec ce qui est demandé.
    Pour ton erreur je ne vois pas trop (l'erreur semble en rapport avec éclipse et je ne l'utilise pas), pose plutôt la question sur le forum éclipse.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut
    Merci,

    Je vais chercher un peu plus et vais regarder du côté de ce forum.
    Je te tiens au courant.

    Merci

  8. #8
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Il y a plusieurs possibilités :
    - le jar est présent dès le lancement de l'application et est référencé dans le classpath => tu appelles simplement la méthode main (dans un Thread éventuellement)
    - le jar est reçu en cours d'exécution ou ne fait pas partie du classpath au lancement de l'application => il fuat utiliser un ClassLoader.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. lancer .bat à partir d'un programme java
    Par ekahrd dans le forum Langage
    Réponses: 4
    Dernier message: 01/01/2010, 02h29
  2. Compiler des fichier java, mais à partire d'un programme Java.
    Par Djobird dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 06/11/2007, 21h44
  3. Réponses: 4
    Dernier message: 24/04/2007, 18h05
  4. Lancer une application à partir d'un programme
    Par Bouguennec dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 05/11/2005, 19h02
  5. [Stratégie] Lancer une url à partir d'une appli java
    Par yobogs dans le forum Général Java
    Réponses: 4
    Dernier message: 14/04/2005, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo