web-dev-qa-db-fra.com

Le package Java n'existe pas d'erreur

Donc, il y a un dossier /usr/share/stuff dans le répertoire racine

dans les choses il y a un tas de fichiers Java avec package org.name définitions en haut

J'exécute javac test.Javatest.Java est dans un sous-domaine

J'ai ajouté /usr/share/stuff à mon chemin de classe.

et en haut de test.Java j'ajoute import org.name

Mais je reçois une erreur package does not exist ... pourquoi?

28
algorithmicCoder

Sont-ils dans les bons sous-répertoires?

Si vous mettez /usr/share/stuff sur le chemin de classe, les fichiers définis avec package org.name doivent être au format /usr/share/stuff/org/name.

EDIT: Si vous ne le savez pas déjà, vous devriez probablement lire ceci: http://download.Oracle.com/javase/1.5.0/docs/tooldocs/windows/classpath.html #Compréhension

EDIT 2: Désolé, je n'avais pas réalisé que vous parliez de fichiers source Java dans /usr/share/stuff. Non seulement ils doivent être dans le sous-répertoire approprié, mais vous devez les compiler. Les fichiers .Java n'ont pas besoin d'être sur le chemin de classe, mais sur le chemin source. (Les fichiers .class générés doivent figurer sur le chemin de classe.)

Vous pourriez vous en tirer en les compilant s'ils ne sont pas dans la bonne structure de répertoires, mais ils devraient l'être, sinon cela générera des avertissements au moins. Les fichiers de classe générés seront dans les bons sous-répertoires (où que vous ayez spécifié -d si vous en avez).

Vous devriez utiliser quelque chose comme javac -sourcepath .:/usr/share/stuff test.Java, en supposant que vous ayez mis les fichiers .Java qui étaient sous /usr/share/stuff sous /usr/share/stuff/org/name (ou tout ce qui est approprié en fonction de leurs noms de paquet).

23
Bruno

Vous devez avoir les noms org/name à /usr/share/stuff et placer les sources de votre package org.name à ce répertoire.

2
pajton

J'ai eu exactement le même problème lors de la compilation manuelle via la ligne de commande. Ma solution était de ne pas inclure le répertoire -sourcepath afin que tous les fichiers Java du sous-répertoire soient également compilés!

2
Xenland

Je rencontrais ce problème lorsque j'essayais d'utiliser un thème fourni avec .jar dans l'application, cela fonctionnait lors du débogage de l'application, mais ce n'était pas le cas lors de la création/l'exportation de l'application.

Je l'ai résolu en décompressant la jar et en ajoutant manuellement son contenu dans mon dossier de construction, ce qui a abouti à ceci:

project/
   │
   ├── build 
   │   └── classes
   │       ├── pt
   │       │   └── myAppName ... 
   │       └── com
   │           └── themeName ...
   ├── src
   └── lib

Je n'ai plus l'erreur et mon application se charge avec le thème prévu.

2
Toni Almeida

Faites un clic droit sur votre projet mavenen bas de la liste déroulante Maven >> reimport

cela fonctionne pour moi pour les dépendances manquantes

0
Mewan