2013-07-06 2 views
1

Je n'arrive pas à compiler un fichier avec javac.javac ne parvient pas à trouver l'importation

Ma commande est de compiler:

C:\Work>javac -classpath "%CLASSPATH%;C:\Users\Me\Downloads\asm-4.1-bin\asm-4.1\src" wDump.java 

Résultats dans:

wDump.java:3: error: package org.objectweb.asm.attrs does not exist 
import org.objectweb.asm.attrs.*; 
^ 
1 error 

Ce paquet certainement n'existe. C'est dans le même répertoire que toutes les autres importations ASM. attrs est un paquet vide qui contient un seul document HTML.

fichier wDump.java contient également

import org.objectweb.asm.*; 

qui se trouve par le compilateur sans aucun problème. Si je commente le problème d'importation (org.objectweb.asm.attrs. *), le fichier est compilé avec succès. Je devrais également noter que le compilateur Eclipse compile ce fichier avec succès.

Répondre

0

Vous pourriez avoir besoin sourcepath pas classpath

+0

'javac -sourcepath "C: \ Users \ Me \ Téléchargements \ asm-4.1-bin \ asm-4.1 \ src" wDump.java' a donné le même résultat – zaz

+0

ce qui est là dans le répertoire src –

+0

Il contient l'ASM 4.1 source. La structure du répertoire est 'src \ org \ objectweb \ asm' Le dossier' asm' contient les dossiers attrs, commons, optimizer, signature, arborescence, util, xml – zaz

0

utiliser les éléments suivants:

javac \ 
-sourcepath src \ 
-your_jar_path/your.jar:. \ 
your_class_path/your.java \ 
-d classes 
+0

Est-ce que 'src' représente le chemin d'accès complet au dossier source? De plus, voulez-vous que 'your_class_path' soit précédé de' cp'? – zaz

+0

suivez ce lien et voyez le bas de la page https://github.com/coolaj86/json-examples/tree/master/java/jackson –

+0

Cela n'a pas fonctionné – zaz

0

Si votre code compile en commentant la ligne import, alors vous n'avez pas besoin et pouvez le supprimer.

Si vous voulez l'utiliser, vérifiez que attrs est le nom correct du paquet, car il semble que import org.objectweb.asm.*; fonctionne. Et vérifiez que attrs est effectivement un package et que le dossier est physiquement existant dans le dossier asm. Vous pouvez également vérifier que les fichiers de classe sont présents dans le dossier attrs.

Le dossier attrs dans le fichier zip source asm contient uniquement une page HTML sans aucune classe à l'intérieur. Essayez de supprimer ce dossier (vous pouvez le sauvegarder auparavant dans un autre répertoire si vous n'êtes pas sûr) et de générer de nouveau le imports via l'outil ASMifier. Si le dossier n'existe pas, l'outil ne générera peut-être pas automatiquement l'importation. Pour votre information, vous ne devez pas utiliser de code source externe pour compiler votre code, sauf si vous modifiez ces sources externes. Utilisez plutôt les fichiers jar, ajoutés à votre classpath, pour compiler votre code. Dans le fichier jar asm-all-4.1, il n'y a pas de dossier attrs.

+0

Cette importation est générée automatiquement par l'outil que j'utilise (ASMifier). Je préfère ne pas le commenter chaque fois que j'ai besoin de compiler de nombreux fichiers. – zaz

+0

Je viens de télécharger le fichier asm-4.1-bin.zip de la page web OW2: src.zip, contenu dans le zip d'asm, contient un dossier 'attrs', mais il n'y a rien d'autre qu'une page html à l'intérieur: ce n'est pas un paquet. Vérifiez le contenu du dossier 'attrs' dans votre répertoire' src'. – eternay

+0

Essayez d'utiliser le fichier 'asm-all-4.1.jar' contenu dans le dossier' lib/all' du fichier zip 'asm' pour compiler votre code. Dans ce fichier jar, le dossier 'attrs' n'existe pas et peut-être que l'outil ne générera pas' import' pour ce paquet. N'utilisez pas de sources externes pour compiler votre code, sauf si vous souhaitez les modifier. – eternay

Questions connexes