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

Entrée/Sortie Java Discussion :

Erreur pour exécuter un projet composé uniquement de fichiers .class (sans les sources)


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Points : 48
    Points
    48
    Par défaut Erreur pour exécuter un projet composé uniquement de fichiers .class (sans les sources)
    Bonjour,

    Voulant simplifier mon projet JAVA, j'aimerais convertir mon projet JAVA contenant des fichiers d'extension "*.java" en un projet ne contenant que des fichiers d'extension "*.class".

    J'ai donc exporté mon projet en .jar puis dézippé.
    J'aimerais lancer la classe principale avec Run As -> Java Application mais la classe contenant le main n'est pas trouvée.
    J'ai aussi remarqué qu'un fichier MANIFEST.MF a été créé dans un répertoire META-INF (J'ai beau le supprimer, le problème n'est pas résolu).

    Dans les logs, l'erreur suivante apparaît :
    !ENTRY
    !MESSAGE Erreur : Unable to create editor ID org.eclipse.jdt.ui.CompilationUnitEditor : the file does not exist.

    !SUBENTRY org.eclipse.core.filebuffers
    !MESSAGE the file does not exist.

    Pourriez-vous m'aider?

    Avec mes remerciements et cordialement

    PS : Je suis sous Eclipse Indigo.

  2. #2
    Membre habitué
    Profil pro
    Opération
    Inscrit en
    Décembre 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Opération

    Informations forums :
    Inscription : Décembre 2012
    Messages : 91
    Points : 188
    Points
    188
    Par défaut
    Un projet se base toujours sur les sources (.java pour java) et pas les binaires (.class en java)
    Un EDI (Eclipse ou autres), a pour but le développement de l'application jusqu'à la création d'une unité d'exécution (Pour java c'est généralement un 'jar').
    L'exploitation de l'unité d'exécution se fait hors EDI. Votre client ne doit pas installer un EDI pour utiliser votre application !
    Dans le cas de java, l’exécution ce fait via la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -jar <nomDuJar> <Arguments>
    Pour cela, ce fichier jar doit contenir un fichier META-INF/MANIFEST.MF indiquant la class principale, le class path, etc... . Ce fichier est généré par l'EDI lors du build.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Points : 48
    Points
    48
    Par défaut
    Bonjour jdevbe,

    Merci de votre réponse, cela est très intéressant.
    J'ai aussi écrit un batch .cmd permettant de lancer la classe principale d'un fichier .java.
    Est-il possible de lancer programme principal qui est dans une classe compilée à l'aide du batch ou faut-il obligatoirement exécuter le projet à l'aide d'un .jar?

    Avec mes remerciements

  4. #4
    Membre habitué
    Profil pro
    Opération
    Inscrit en
    Décembre 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Opération

    Informations forums :
    Inscription : Décembre 2012
    Messages : 91
    Points : 188
    Points
    188
    Par défaut
    Il est effectivement possible d’exécuter la fonction 'main' d'une classe compilée sans l'empactée dans un jar.
    Si la classe Application est dans le package org.company.app, il faut placer le fichier Application.class dans le directory <baseDir>/org/company/app/ et exécuter la jvm comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp <baseDir> org.company.app.Application <Arguments>
    Si la classe Application dépend d'autres classes (excepté les classes de base de la jvm), il faut aussi les placée de la même dans <baseDir> selon leurs noms de package. Si les classes sont dans des jar, il faut ajouté ces jar au classpath: exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -cp ./;<dir1/monjar1.jar>;<dir2/monjar2.jar> org.company.app.Application <Arguments>

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 54
    Points : 48
    Points
    48
    Par défaut
    Bonjour jdevbe,

    Tes renseignements ont résolu mon problème.

    Avec mes remerciements

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/02/2015, 13h06
  2. Réponses: 1
    Dernier message: 18/11/2014, 16h00
  3. Réponses: 13
    Dernier message: 29/06/2007, 18h03
  4. [JNI] Erreur d'exécution pour le système
    Par GLDavid dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 17/03/2006, 14h49
  5. [ASP] message d'erreur (impossible d'excuter un projet ...)
    Par haganidjamel dans le forum Delphi .NET
    Réponses: 6
    Dernier message: 06/09/2005, 17h28

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