ne peut pas accéder aux classes dans le package
J'ai la structure de répertoire suivante :
MessManagement
est le répertoire parent.
Sous que j'ai 3 répertoires :
student
, messconvener
,messmanager
L'étudiant répertoire contient les Student.java
et Student.class
fichiers. Le messconvener
contient les MessConvener.java
cela nécessite la Student class
comme MessConvener
est étendu de Student
lui-même.
Comment dois-je faire de l'emballage des classes....??
Ce que j'ai essayé jusqu'à présent.
Code :
C'est Student.java
package MessManagement;
import java.sql.*;
public class Student
{
}
C'est MessConvener.java
package MessManagement;
import MessManagement.student.Student;
public class MessConvener extends Student
{
}
Mais cela ne semble pas fonctionner.Meesage D'Erreur :
MessConvener.java:2: error: package MessManagement.student does not exist
import MessManagement.student.Student;
^
MessConvener.java:3: error: cannot find symbol
public class MessConvener extends Student
^
symbol: class Student
2 errors
- Quelle IDE utilisez-vous?
- je suis en utilisant le terminal sous ubuntu
- Comment compiler ce? En regardant votre message d'erreur, je pense que c'est un simple problème de classpath. Vous devez spécifier votre classpath de votre commande javac lorsque vous essayez de compiler.
- poster votre code ici.. afin que nous puissions vous aider à mieux..
- avez-vous d'abord compiler le Student.java la classe avant de compiler MessConvener.java de classe?
- je le compiler à l'aide de javac.
- j'ai déjà compilé Student.java
- cela semble être un problème avec Intellij IDEA (rsp. l'utilisation). eu ce problème deux fois aujourd'hui, pourrait résoudre ce problème dans le projet maven avec smac89 aider, et maintenant je l'ai eu dans l'autre (gradle) projet de trop. Qui s'est passé lorsque j'ai copié certaines classes d'un projet à l'autre. très étrange comportement.
Vous devez vous connecter pour publier un commentaire.
Il y a deux raisons possibles pour lesquelles cela se produit
Est la racine de vos répertoires inclus dans le classpath? Vous devez spécifier lors du démarrage d'un programme java. Voir la documentation sur la façon de le faire ou cette variante pour unix.
Sont vos classes public? Si vous oubliez le modificateur public, les cours ont package de visibilité et ne pas être accessibles à partir d'autres paquets.
Oh, eh bien, personne ne s'attend à l'inquisition espagnole ... vérifiez votre orthographe avec soin, y compris les capitales.
L'erreur que vous obtenez un sens. Le
Student
classe est situé dansMessManagement
paquet neMessManagement.student
paquet.Pour moi, j'ai eu cette erreur pour une autre raison, et ce fut dans un projet maven. Il a commencé à se produire après que j'ai fait de grands changements pour les classes et copiés dans un grand nombre de nouvelles classes. Il n'y avait pas de conflit de noms de paquets comme dans votre cas.
La solution a été de faire
mvn clean
.Après cela, je n'ai pas d'erreur de plus.
J'ai récemment eu ce problème et c'était parce que j'avais une classe de fichier dans le même répertoire que le fichier java que j'étais en cours de compilation. Vous devez supprimer toutes les .classe les fichiers dans ce répertoire.
J'ai supprimé le hors dossier et le problème a été résolu
Cela peut se produire lors de la copie de fichier d'un projet à l'autre, ou lorsque vous déplacez les fichiers via refactoriser.
Ce qui les a aidé dans mon Intellij IDEA/Gradle projet a été de supprimer le paquet de ligne et l'utilisation
Shift+Enter
pour le remplacer, avec apparemment la même chose. Si vous avez beaucoup de classes, vous avez besoin de trouver la "racine" de l'dépendances et commencer par là en premier.Très étrange, de la solution d'un diff pour le texte en clair de ces dossiers ne montrent rien, mais permet de résoudre le problème.
Une autre solution peut être d'utiliser Refactor-Renommer dans le paquet, lui donner un buffername et puis le nom de nouveau comme vous voulez qu'elle soit appelée.
Je n'ai pas regardé plus en profondeur de pourquoi cela se produit.
Dans le projet maven
mvn clean
m'a aidé.