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

avec Java Discussion :

Execution java linux


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 28
    Points : 22
    Points
    22
    Par défaut Execution java linux
    Bonjour

    Je ne suis pas habitué au développement java et je souhaite développer un petit programme en java que je lancerai en ligne de commande sous linux via ssh.

    Pour commencer j'ai développé un simple Helloworld :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class Hello {
       public static void main(String[] args) {
          System.out.println("Helloworld");
       }
    }
    Je compile le .jar et il semble se compiler sans erreurs.

    Lorsque je le lance ce programme via la commande "java hello.jar"
    j'ai toute une série d'erreur :

    Exception in thread "main" java.lang.NoClassDefFoundError: hello/jar
    Caused by : java.lang.ClassNotFoundException: hello.jar
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    ...

    Avez vous une explication?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    "compiler un jar" ne veux rien dire. Est-ce que tu as compilé un .class ou est-ce que tu as créé un .jar à partir de ce .class ? Suivant le cas la commande n'est pas la même.

    Dans le premier cas, ce sera
    Dans le deuxième
    a supposer que le jar a été créé correctement.

    Enfin vous n'avez pas "une série d'erreurs" mais une seule erreur d'afficher: il ne trouve pas la classe hello.jar

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Merci beaucoup pour ta réponse. Désolé mais je débute en java.

    Si je lance le class par la commande "java Hello", mon programme fonctionne.

    Si je lance je jar par la commande "java -jar hello.jar" j'ai l'erreur suivante :
    Failed to load Main-Class manifest attribute from Hello.jar

    Qu'est il préférable d'utiliser ? un class ou un jar ?
    Pourquoi cette erreur avec le jar ?

    Merci

  4. #4
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Bonjour,
    lorsque tu lances la commande 'java Hello', cela exécute la méthode main() de la classe Hello.java (Hello.class)
    Par contre, à supposer que tu a créé un .jar de ton programme, en l'occurrence hello.jar
    Il faudrait que ce .jar contienne un fichier Manifest qui indique quelle classe contient le main, et éventuellement le classpath à utiliser pour l'exécution du .jar.
    Voir http://download.oracle.com/javase/tu...ar/appman.html

    D'ailleurs, avais-tu réellement fait le .jar du fichier compilé -> Hello.class (créé après l'exécution de => javac Hello.java) ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    J'ai fouillé dans la génération du jar par eclipse et j'ai choisi l'option de créer un "Runnable JAR file" puis dans le launch configuration j'ai choisi ma classe et mon JAR fonctionne désormais correctement.

    Merci beaucoup pour votre aide

Discussions similaires

  1. executer cmd linux en Java
    Par eniraka dans le forum Langage
    Réponses: 3
    Dernier message: 23/02/2009, 10h58
  2. Executable Java sous Linux
    Par menuge dans le forum Général Java
    Réponses: 1
    Dernier message: 03/05/2006, 10h48
  3. executable java
    Par kazer04 dans le forum JBuilder
    Réponses: 1
    Dernier message: 11/01/2006, 22h20
  4. [JAVA][Linux]connection attempt failed
    Par bischof dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/09/2004, 14h19
  5. Exécutable Java avec JRE intégré
    Par clawhammer dans le forum JBuilder
    Réponses: 2
    Dernier message: 06/10/2003, 16h26

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