2017-09-04 4 views
-2

Je suis donc complètement novice dans l'exécution de codes par le biais de lignes de commande (j'ai l'habitude de travailler avec Eclipse). Je n'arrive pas à trouver une solution pour compiler des classes lorsque j'utilise des paquets différents.Java: impossible de trouver le symbole lors de la compilation

Ceci est ma première classe (GreetingsUniverse.java):

package com.ocajexam.tutorial; 
import com.ocajexam.tutorial.*; 

public class GreetingsUniverse { 
    public static void main(String[] args) { 
     System.out.println("Greetings, Universe!"); 
     Earth e = new Earth(); 
    } 
} 

deuxième classe (Earth.java):

package com.ocajexam.tutorial.planets; 
public class Earth { 
    public Earth() { 
    System.out.println("Hello from Earth!"); 
    } 
} 

J'ai essayé compliling comme suit:

javac -d . Earth.java 

Ce qui crée un fichier de classe de la Terre dans com/ocajexam/tutorial/planets.

Puis, lorsque je tente:

javac -d . GreetingsUniverse.java 

que je reçois les messages d'erreur suivants:

GreetingsUniverse.java:9: error: cannot find symbol 
       Earth e = new Earth(); 
       ^
    symbol: class Earth 
    location: class GreetingsUniverse 
GreetingsUniverse.java:9: error: cannot find symbol 
       Earth e = new Earth(); 
         ^
    symbol: class Earth 
    location: class GreetingsUniverse 
2 errors 

J'ai aussi essayé en laissant de côté -d et d'autres choses, mais continuer à obtenir la même erreur. Je pense que cela a quelque chose à voir avec les différents paquets. Quelqu'un peut-il m'aider s'il vous plaît?

+0

Utilisez un IDE comme Eclipse –

+0

Essayez d'utiliser alternativley -classpath spécifier tous les fichiers que vous voulez compiler au lieu de le faire separatley – jontro

+0

Essayez 'cd'-ing en haut de votre arbre de package et le fonctionnement 'javac com/ocajexam/tutoriel/* .java' et' javac com/ocajexam/tutoriel/planètes/* .java' – khelwood

Répondre

3

La classe Earth est dans le paquet com.ocajexam.tutorial.planets encore dans votre importation GreetingsUniverse que vous importez com.ocajexam.tutorial.*, ce ne sera pas importer la classe Earth pour vous. Donc, changer import com.ocajexam.tutorial.*; soit à import com.ocajexam.tutorial.planets.*; ou import com.ocajexam.tutorial.planets.Earth;