Java impossible de trouver ou charger la classe principale

Résolu
solocontact Messages postés 16 Statut Membre -  
 mrj -
bonjour à tous.
j'ai ce fichu message qui apparaît lorsque je lance la commande java projet1.
Pourtant, tout fonctionne avec eclipse.
De plus, mon programme est élémentaire.

package projet1;
class projet1 {
    public static void main (String[] args){
     System.out.println("Hello World");
    }
 }

19 réponses

  1. solocontact Messages postés 16 Statut Membre 2
     
    j'ai converti mon fichier.class en jar exécutable, et ça fonctionne.
    Donc je n'ai toujours pas de solution, mais au moins , je peux continuer de cette façons
    1
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    Je pense que le mieux aurait été de tout reprendre de zéro.
    Créer un nouveau fichier java, le mettre dans un répertoire simple, en dehors du projet Eclipse et recommencer les manipulations. Mais commence simple sans package.
    Une fois que ça aura marché sans package, tu rajoutes le package, et après tu déplaces le dossier plus loin, jusqu'au dossier d'Eclipse.
    Ainsi, on verrait bien à quel moment il y a un problème... de toute façon si tu veux faire ça à la main en invite de commandes, tu n'as pas besoin d'Eclipse pour l'instant.
    1
  3. Utilisateur anonyme
     
    Salut,

    De quelle manière à tu exporté ton projet ?
    0
  4. solocontact Messages postés 16 Statut Membre 2
     
    désolé, je ne comprends pas "exporté"?
    0
    1. Utilisateur anonyme
       
      As-tu créé un .jar pour exécuter ton projet ?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. solocontact Messages postés 16 Statut Membre 2
     
    le résultat est le même avec la commande java projet1.projet1
    Aussi, je n'ai pas créé de .jar ... est ce nécessaire, il est déjà compilé en .class ?
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Et tu es où lorsque tu fais la commande ?
      Il faut que tu sois à la racine du projet, c'est à dire au dessus du dossier projet1.

      Exemple, si ton fichier compilé est
      C:\Workspace\projet1\projet1.class

      Tu dois faire
      java projet1.projet1
      dans le dossier
      C:\Workspace
      .
      Si tu le fais ailleurs, par exemple dans le répertoire
      C:\Workspace\projet1\
      ça ne sera pas bon.
      0
  7. solocontact Messages postés 16 Statut Membre 2
     
    j'ai bien essayé avec l'emplacement à la racine, mais ça ne fonctionne pas.
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Il y a un autre truc que je viens de voir : dans ton code, la classe projet1 doit être public sinon elle ne sera pas accessible pour se lancer.

      package projet1;
      public class projet1 { 
          public static void main (String[] args){ 
              System.out.println("Hello World"); 
          } 
      }
      0
  8. solocontact Messages postés 16 Statut Membre 2
     
    ça ne fonctionne pas non pllus, avec une "class public"
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Et comment tu as compilé ta classe ? Tu étais bien au dessus du dossier projet1 lorsque tu as fait la commande javac ?

      javac projet1\projet1.java
      java projet1.projet1
      0
  9. solocontact Messages postés 16 Statut Membre 2
     
    ça ne marche pas non plus ...
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      "ça ne marche pas non plus "
      C'est toujours le même message d'erreur ?

      Est-ce que tu peux faire ces commandes et me donner le résultat :

      java -version
      javac -version

      Ton code est bien dans un fichier projet1.java ? dans un dossier projet1 ?
      0
  10. solocontact Messages postés 16 Statut Membre 2
     
    java -version :
    java version "1.7.0_51"
    java SE Runtime environment build 1.7.0_51-b13
    java hotspot tm 64-bit server vm build 24.51-b03, mixed mode

    javac - version:
    javac 1.7.0_51

    mon code a été déclaré sous eclipse, et donc, oui dans un projet
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Oui mais Eclipse fait sa propre configuration.

      Tu dois donc avoir un dossier "src\projet1" avec un fichier projet1.java

      Si tu compiles avec Eclipse, tu as un dossier "bin\projet1" avec le fichier projet1.class dedans
      Il faut que tu ailles dans le dossier "bin" pour lancer la commande java projet1.projet1

      Si tu compiles avec javac, tu dois le faire dans le dossier "src" ce qui te générera un fichier projet1.class dans "src\projet1", il faudra alors aller dans le dossier "src" pour lancer la commande.
      0
  11. solocontact Messages postés 16 Statut Membre 2
     
    j'ai essayé avec les deux méthodes, via eclipse ou en manuel via javac, mais le résultat est le même. j'ai bien un fichier projet1.class quel que soit la méthode.
    J'ai dans tous les cas le même message!
    0
  12. KX Messages postés 19031 Statut Modérateur 3 020
     
    Est-ce que tu pourrais me faire une commande
    javap -v projet1.projet1 
    Cela devrait afficher un certain nombre d'informations, j'aimerais pouvoir les lire, et les comparer avec ce que j'ai chez moi, pour trouver la différence.
    0
  13. solocontact Messages postés 16 Statut Membre 2
     
    après avoir saisi la commande, le message suivant s'affiche :
    error : class not found: projet1.projet1
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Donc tu n'as pas de fichier .class en tout cas pas dans le dossier projet1.

      Rappel : si ton fichier projet1.java est à l'emplacement "src/projet1/projet1.java" tu devrais faire tes commandes à partir du dossier "src", ce qui devrait te créer le fichier "src/projet1/projet1.class" mais au vu de tes résultats tu n'es pas dans le dossier "src"
      0
  14. solocontact Messages postés 16 Statut Membre 2
     
    j'ai essayé à partir de tous les répertoires possibles, ta commande, mais en vain.
    J'ai toujours le même message :
    class not found : projet1.projet1

    sinon, le rituel , impossible de trouver ou charger la classe principale projet1
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Dans les deux cas cela correspond à une erreur de type "tu n'es pas dans le bon dossier"

      Lorsque tu fais une commande "pwd" qu'est-ce que cela te donne ?
      Si tu fais un "dir" est-ce que tu as bien le dossier "projet1" dans ta liste ?
      0
  15. solocontact Messages postés 16 Statut Membre 2
     
    pour la commande dir, il n'y a pas de soucis
    pour la commande pwd, elle n'est pas reconnue
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      pour remplacer pwd tu peux utiliser
      echo %cd%
      , mais ce qui m'intéresse c'est le résultat du dir, est-ce que tu as bien le dossier "projet1" dans ta liste ?
      0
  16. solocontact Messages postés 16 Statut Membre 2
     
    oui oui, j'ai bien un projet1 en faisant un dir.
    Je l'ai d'ailleurs à plusieurs niveaux:
    d:\workspace\projet1\bin\project1\project1.class
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Oui mais là tu as des
      project1
      avec un C alors qu'avant c'était des
      projet1
      sans C.
      0
  17. solocontact Messages postés 16 Statut Membre 2
     
    dsl, erreur de frappe, il n'y a pas de c à projet1
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      La question est donc de savoir à quel niveau tu es.

      Pour que ça marche tu dois être dans
      d:\workspace\projet1\bin\

      Là tu pourras faire
      java projet1.projet1


      Remarque : ça c'est la classe compilée par Eclipse, mais si tu veux le faire à la main, c'est plutôt dans
      d:\workspace\projet1\src\
      que tu devrais être, pour faire
      javac projet1\projet1.java
      puis
      java projet1.projet1
      .
      0
  18. solocontact Messages postés 16 Statut Membre 2
     
    j'ai déjà fait à plusieurs reprises ce que tu me recommandes de faire... mais ça ne marche toujours pas
    0
  19. Patxi64
     
    J'ai eu le même problème et je l'ai résolu en ouvrant le fichier.class avec le bloc note, j'ai supprimé la ligne
    package projet1;
    et ça fonctionne à présent
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Un fichier .class est obtenu après compilation, il ne peut donc pas être édité avec un bloc notes car il ne contient que du bytecode, donc impossible de supprimer la ligne concernant le package puisqu'elle ci n'existe plus, elle n'est présente que dans les codes sources .java d'origine.
      0
    2. mrj
       
      Merci Patxi64 !
      c'est bien ça, il faut enlever "package projet1;" du .java et recompiler
      0
  20. KX Messages postés 19031 Statut Modérateur 3 020
     
    "je lance la commande java projet1"
    Etant donné que tu as un package, tu devras le prendre en compte dans ta commande, ce devrait donc être
    java projet1.projet1
    -1