Erreur Java: package " x " n'existe pas
Donc, j'ai une arborescence de fichiers sous Linux qui ressemble à ceci:
- ~/keyboard_warriors/
- test/
- ConfigTest.java
- ConfigParser.class
- ConfigParser.java
- test/
Le problème est que quand j'essaie de taper dans le Terminal:
javac ConfigTest.java
J'obtiens l'erreur:
ConfigTest.java:2: error: package keyboard_warriors does not exist
import keyboard_warriors.*;
^
Cela m'énerve vraiment et je ne pouvais pas trouver toutes les réponses n'importe où. Si vous avez pu résoudre mon problème, je voudrais être une personne très heureuse.
- Ce n'est pas un paquet, c'est la racine de votre répertoire... je l'avais suggérer d'utiliser un IDE.
- docs.oracle.com/javase/tutorial/java/package/packages.html
- Hé les gars, j'ai trouvé la réponse. Alors que dans la ~ répertoire, je n'ai
javac -cp "." keyboard_warriors/test/ConfigTest.java
Vous devez vous connecter pour publier un commentaire.
Il ne va pas reconnaître un répertoire en dehors de la classpath comme faisant partie du classpath.
Ce que vous voulez probablement, c'est d'inclure un autre dossier à l'intérieur de l'endroit où votre test est en cours d'exécution:
Cela suppose aussi que vous avez déclaré que ces classes dans le
keyboard_warriors
classpath, par la présente:Selon la façon dont vous êtes la compilation de ces classes, vous devez l'ajouter au classpath avec le
-cp
drapeau surjavac
.Compte tenu de la structure que vous avez cité, il serait étrange d'être de l'importation de
keyboard_warriors
enConfigTest
; à partir de la structure, vous vous attendez à voirpackage keyboard_warriors;
au lieu de cela, parce queConfigTest
est dans lekeyboard_warriors
répertoire.Si
ConfigTest
n'est pas dans lekeyboard_warriors
paquet, il est probablement dans le mauvais répertoire.En général: Lorsque vous êtes à la compilation des classes, le
.java
fichier doit être dans un répertoire nommé pour le package c'est dans. Ainsi, par exemple, siConfigTest
est censé être dans le paquet, vous souhaitez garder votre répertoire/fichier de structure et de l'utilisation...dans
ConfigTest.java
.Si
ConfigTest
n'est pas censé être dans ce package, vous auriez probablement la faire sortir de ce répertoire; peut-être:...et puis
import keyboard_warriors.*;
aurait du sens, à condition que votre répertoire est dans votre classpath.J'ai trouvé la réponse il y a longtemps mais j'ai oublié de poster. désolé :). Il est en fait assez simple. J'ai essayé de compiler les classes de l'intérieur de la
test/
dossier. Ce que j'ai fait était d'aller jusqu'à l'endroit où toutes les classes sont accessibles sans avoir à utiliser un chemin absolu et sans l'aide de../
dans le chemin d'accès (AKA lekeyboard_warriors/
dossier. Je viens de compiler à partir de là et tout était OK. Merci pour l'entrée, mais cependant, il ne aider certains ;).