web-dev-qa-db-fra.com

Erreur du compilateur - 'Erreur: impossible de trouver ou de charger la classe principale com.Sun.tools.javac.Main'

Je viens juste de commencer à apprendre Java et j’ai installé JDK sur mon ordinateur, mais maintenant, j’essaie d’utiliser la SIMPLIST de Java et sa compilation. J'ai installé JDK sur C:/Java/jdk7/.

Chaque fois que j'essaie de compiler, j'obtiens une erreur:

Error: Could not find or load main class com.Sun.tools.javac.Main

Voici comment je compile:

javac test.Java

J'ai aussi essayé:

javac.exe test.Java

Je ne sais pas si mon code est faux ou quoi que ce soit, mais voici mon test.Java:

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

Voici Java_HOME:

C:\Java\jdk7\

Toute aide serait appréciée!

13
Oliver Ni

Vous avez probablement effectué une installation manuelle de JDK. Quoi qu’il en soit, cette erreur est certainement due à une faille dans votre installation de Java. Pour le résoudre, vous devez exécuter la commande suivante dans votre répertoire Java_HOME/lib:

unpack200 -r -v -l "" tools.pack tools.jar

Cela décompactera le fichier tools.jar, ce que votre installation (manuelle ou non) ne vous avait pas faite. Après cela, essayez d'exécuter:

javac -version

Cette commande devrait bien fonctionner. Ceci est similaire à l'erreur que vous pouvez avoir avec la commande Java. Pour la même raison, votre installation n'a pas décompressé les fichiers nécessaires. Vous pouvez vous référer à ce lien: JRE 1.7 renvoie: Java/lang/NoClassDefFoundError: Java/lang/Object

J'ai eu ce problème moi-même et ma solution est une petite adaptation de cette autre réponse.

17

Avez-vous redémarré après avoir installé? Certaines variables d'environnement importantes (à savoir la CLASSPATH) ne sont pas définies avant le redémarrage de Windows. Quoi qu'il en soit, vous pouvez contourner ce problème en ajoutant rt.jar et tools.jar à votre CLASSPATH. En outre, vous devriez probablement vous assurer que votre Java_HOME est défini.

2
Elliott Frisch

Votre code source est OK.

Le journal des erreurs signifie que vous n'avez pas trouvé la classe incluse tools.jar. Tools.jar est toujours inclus. JDK . Donc, je suppose que vous utilisez un mauvais JDK. Donc, vous essayez d’écrire le chemin complet javac que vous avez installé .
exemple) "C:\Programmes\Java\jdk1.7.0_25\bin\javac" test.Java (Windows)

Si cela a fonctionné, JDK dans la variable de chemin est incorrect. Ainsi, vous ajoutez le chemin "C:\Program Files\Java\jdk1.7.0_25\bin \" (par exemple) à la variable de chemin.
(Voir http://www.computerhope.com/issues/ch000549.htm )

Si cela ne fonctionne pas, vous vérifiez ...\jdk1.7.0_25\lib\tools.jar. Si ça n'existe pas, c'est faux. Donc, vous réessayez d'installer. 
Si cela existe, je ne sais pas. Je recommande de ré-installer à vous.

1
t_ozawa

Tout d’abord, assurez-vous qu’il existe un fichier tools.jar dans votre jdk\lib folder.

Si oui alors suivez ces étapes:

  1. Exécutez le code suivant dans votre commande Invite dans votre répertoire jdk

    for %I in (.) do echo %~sI
    

Même si vous ne vous trouvez pas dans le répertoire jdk, ajoutez simplement le nom du répertoire au lieu de "." . Ce code vous renverra le chemin de dos. Copier coller le chemin de dos dans Java_HOME.

  1. Exécutez le code ci-dessus à nouveau lorsque vous êtes dans Java_HOME\lib. Copiez-le dans la variable d'environnement nommée CLASSPATH. Ajoutez simplement "\tools.jar" à la fin.

Même si cela ne vous aide pas, essayez de réinstaller Java (ou extrayez simplement le fichier tools.jar pour le vérifier). J'espère que ça aide

0
Koushik Kumar Dey

J'ai plusieurs versions de JDK sur mon ordinateur portable. Aujourd'hui, j'ai rencontré ce problème: après être passé de JDK1.7 à mon Java_HOME, j'ai saisi javac dans le cmd et j'ai obtenu cette erreur. Enfin, j'ai désinstallé JDK1.7 et l'ai réinstallé, et le problème avait disparu.

0
Eric Ben