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");
    }
 }
A voir également:

19 réponses

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
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
Utilisateur anonyme
 
Salut,

De quelle manière à tu exporté ton projet ?
0
solocontact Messages postés 16 Statut Membre 2
 
désolé, je ne comprends pas "exporté"?
0
Utilisateur anonyme
 
As-tu créé un .jar pour exécuter ton projet ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
solocontact Messages postés 16 Statut Membre 2
 
j'ai bien essayé avec l'emplacement à la racine, mais ça ne fonctionne pas.
0
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
solocontact Messages postés 16 Statut Membre 2
 
ça ne fonctionne pas non pllus, avec une "class public"
0
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
solocontact Messages postés 16 Statut Membre 2
 
ça ne marche pas non plus ...
0
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
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
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
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
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
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
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
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
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
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
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
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
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
solocontact Messages postés 16 Statut Membre 2
 
dsl, erreur de frappe, il n'y a pas de c à projet1
0
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
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
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
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
mrj
 
Merci Patxi64 !
c'est bien ça, il faut enlever "package projet1;" du .java et recompiler
0
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