classe d'importation de fichier en java
J'ai un répertoire principal (contient main.java) et un sous-répertoire( contient child.java).
Mon problème est comment instancier child.java dans main.java
- J'ai fait l'enfant de la classe publique. & ajout de la ligne n ° 1 en tant que
package mypackage
- J'ai compilé
child.class
avecjavac -d . child.java
qui crée un nouveau mypackage répertoire. - J'ai essayé d'importer la classe enfant en principal comme suit:
import subdirectory.mypackage.*
(note option-d endroits les child.class à l'intérieur de dossier mypackage) - J'ai compilé le main.java fichier avec "javac main.java"
J'obtiens l'erreur suivante:
mainAESE.java:9: cannot access subdirectory.child
bad class file: RegularFileObject[./subdirectory/child
class file contains wrong class: mypackage.child
Please remove or make sure it appears in the correct subdirectory of the class
child childInstance= new child();
^
1 error
s'il vous plaît aider moi!!
- essayez
import mypackage.*
- bonjour Abu.. j'ai essayé ce.. il dit "paquet n'existe pas"
Vous devez vous connecter pour publier un commentaire.
Être de s'assurer que le dossier du package
mypackage
etMain.class
partager le dossier parent.Je présume que l'
Main
classe est créée dansdefault
paquet.et votre structure de répertoire doit être:
et de lancer/charger le
Main
question à la suite de la commande,Vous devez faire deux choses.
Remplacer votre actuel d'importation avec
import mypackage.child
L'importation doit refléter la nom complet de la ou des classe(s) que vous importez. Il n'a rien à voir avec l'emplacement de la catégorie fichiers sur votre machine. Vous pouvez également faire de
import mypackage.*
pour importer toutes les classes du packagemypackage
au lieu de spécifier le(s) que vous voulez, individuellement... c'est juste un style de codage choix.Ajouter
subdirectory
à votre classpathLe chemin de la classe, d'autre part, ne avoir à faire avec l'emplacement de la catégorie fichiers sur votre machine. Comme son nom l'indique, il dresse la liste des chemins d'accès à tous les lieux où la JVM devriez regarder pour des classes que votre programme utilise. Ou, comme Oracle, il met, "Le chemin de classe dit JDK outils et des applications où trouver de tiers et les classes définies par l'utilisateur." Vous n'avez pas besoin de dire à Java où trouver les classes spéciales qu'il est livré avec (comme
String
).Les instructions pour le #2 dépendent de la façon dont vous exécutez votre programme (à partir de la ligne de commande ou Eclipse ou autre chose). Depuis que vous utilisez la ligne de commande (par votre commentaire), vous aurez besoin d'utiliser la
-classpath
drapeau, ou son abréviation,-cp
, comme suit:java -cp ./subdirectory main
child
?package aes_wrapper.AESE.child
de match. Mais vous pouvez également modifier l'emplacement où le fichier est enregistré, selon ce qui est le plus facile pour vous.Vous avez les fichiers suivants:
main.java
mypackage/child.java
dans main.java la première ligne doit être:
à partir du répertoire où main.java est, exécutez
et puis:
mypackage doit contenir child.java et child.class
java principal devrait fonctionner, car il va chercher les enfants dans un sous-répertoire appelé mypackage.