6
votes

Comment utiliser une classe d'un fichier différent de Java?

am Nouveau à Java et c'est ce que je tente de faire;

J'ai deux fichiers situés sur ce dossier sur une machine Windows; xxx

sur mon immeuble .java je fais une utilisation de la personne de classe située dans le fichier personne.java Ie xxx

ampilez les fichiers de ce dossier xxx < p> Mais quand j'essaie de compiler le bâtiment.java, le compilateur me dit xxx

Comment puis-je faire de la construction.java connaît sur la personne de classe dans le fichier personne.java?

gath


7 commentaires

Les deux classes ont le même paquet ? ( package com.jsim; )


Veuillez fournir la source complète de classes personne et bâtiment .


@MBYD C'est ce que vous supposez à partir de la structure de fichiers GATH, mais alors le compilateur signale emplacement: classe com.liftsim.building qui est un package différent. Je ne sais pas si c'est une faute de frappe dans la question ou quoi. Nous devrons attendre une mise à jour.


J'ai édité l'erreur du compilateur. com \ jsim


Oui les deux classe ont le même paquet, com.jsim


D: \ Programmes \ sims \ src \ javac com / jsim / bâtiment.java com / jsim / personne.java


Vous voudrez peut-être vérifier télécharger.oracle.com/javase/1.3 /docs/tooldocs/win32/javac.htm l Pour plus d'informations (cochez la recherche de la recherche de types).


5 Réponses :


0
votes

Vous devez importer la classe que vous référencez:

import Person;


1 commentaires

Je suis en désaccord - On dirait qu'il utilise le même nom de package (com.jsim), ce qui signifie que vous n'avez pas besoin d'importer ces classes comme elles sont dans le même paquet.



3
votes

Vous devez obtenir vos noms et importations de votre colis à être cohérents. Les informations que vous avez publiées contiennent deux noms de packages différents. Vous devez donc construire les classes dans le même paquet ou ajouter une instruction d'importation.


0 commentaires

0
votes

Je pense que le problème est en effet avec cela comme: xxx pré>

puisque la classe que vous écrivez est dans le même package que les autres (com.jsim), vous n'avez pas besoin d'importer n'importe quoi. Cependant, vous avez spécifié un nom de classe totalement différent dans votre initialisation, il semble (je devine à l'aide de l'éclipse autocomplete?) - Donc simplement supprimer toutes les importations et ré-écrire la ligne ci-dessus comme suit: P>

private ArrayList<Person>personList = new ArrayList<Person>();


5 commentaires

Rééditer ma question, regarde exactement comme vous l'énoncez mais vous ne pouvez toujours pas compiler.


Compilez-vous de la ligne de commande? Si tel est le cas, puisque vous utilisez des noms de packages, vous devrez utiliser le paramètre -D pour spécifier le dossier de destination - afin de générer des fichiers .Class avec des structures de répertoire (emballage) - comme ceci: Javac -D out /


Essayé cela mais a échoué javac -d ../classes com / jsim / bâtiment.java J'ai le dossier de destination nécessaire (classes) déjà créé.


quel répertoire bâtiment.java dans?


D: \ Programmes \ sims \ javasim \ src \ com \ jsim \



0
votes

J'ai découvert que lorsque j'utilise Eclipse, je ne peux pas utiliser -non-classes publics dans d'autres fichiers dans le même paquet. Notez que j'utilise le package par défaut pendant que cela se produit. Ce comportement change lorsque j'ouvre les deux fichiers et que deux fenêtres ouvrent dans l'éditeur. Dans ce cas, je peux utiliser des cours dans d'autres fichiers.


0 commentaires

3
votes

Exécuter Javac * .java ou Javac Person.java Building.java ou Javac Building.java Person.java Pour compiler vos cours.

semble être personne.java n'est pas compilé avant de compiler le fichier de construction.java.

Le fichier de classe des personnes ayant besoin de la personne pour la compilation au lieu de fichier .java.


0 commentaires