2011-05-08 5 views
4

Je suis un peu nouveau pour la compilation en utilisant javac ligne cmd et je vais avoir du mal à compiler cette classe simple Base-InterfaceCompiling Java en utilisant la ligne de commande JAVAC

package com.apress.prospring2.ch03.di; 

/** 
* @author janm 
*/ 
public interface Encyclopedia { 

    Long findLong(String entry); 

} 

package com.apress.prospring2.ch03.di; 

import java.util.Map; 
import java.util.HashMap; 

/** 
* @author janm 
*/ 
public class HardcodedEncyclopedia implements Encyclopedia { 
    private Map<String, Long> entryValues = new HashMap<String, Long>(); 

    public HardcodedEncyclopedia() { 
     this.entryValues.put("AgeOfUniverse", 13700000000L); 
     this.entryValues.put("ConstantOfLife", 326190476L); 
    } 

    public Long findLong(String entry) { 
     return this.entryValues.get(entry); 
    } 
} 

Je peux facilement compiler Encyclopédie en utilisant Encyclopedia.java javac mais quand je tente de compiler .java HardcodedEncyclopedia-je obtenir

HardcodedEncyclopedia.java:9: cannot find symbol 
symbol: class Encyclopedia 
public class HardcodedEncyclopedia implements Encyclopedia { 
              ^
1 error 

quelqu'un peut-il dire s'il vous plaît moi comment résoudre ceci sans utiliser Ant ou Maven? Merci :)

Répondre

1

Essayez:

javac Bar.java Foo.java 

Ce envisage ils sont dans le même paquet

2

Je soupçonne que vous essayez de compiler HardcodedEncyclopedia.java à l'intérieur du répertoire com/apress/prospring2/ch03/di. Même si Encyclopedia.java est dans le même répertoire, javac a besoin de savoir comment trouver le paquet om.apress.prospring2.ch03.di son devrait être Vous pouvez spécifier le chemin de classe comme ceci:.

javac -cp ../../../../.. HardcodedEncyclopedia.java 

Ou vous pouvez aller dans le répertoire racine implique le classpath le répertoire courant, comme celui-ci:

cd ../../../../.. 
javac com/apress/prospring2/ch03/di/HardcodedEncyclopedia.java 
3

vous devez vous compiler des classes de niveau supérieur de vos colis, dans ce cas, vous devez être dans le répertoire où la « com » se trouve .

Ensuite, vous pouvez faire votre compilation:

javac -cp . com/apress/prospring2/ch03/di/*.java 
Questions connexes