2013-06-27 3 views
0

J'ai un problème lors de la compilation de ces fichiers java. J'ai une classe MeterMovementService.java et une interface MeterMovementServiceMBean.java. La classe implémente cette interface. Et j'ai d'abord compilé l'interface. La classe et l'interface résident dans le même paquet. Mais quand je tente de compiler la classe donne erreur:java setting classpath pour l'interface d'implémentation de classe

MeterMovementService.java:2: error: cannot find symbol 
public class MeterMovementService implements MeterMovementServiceMBean 
              ^
    symbol: class MeterMovementServiceMBean 
1 error 

Voici le code pour la classe MeterMovementService.java

Ma classe does'nt ont dependency.It implémente simplement l'interface.

public class MeterMovementService implements MeterMovementServiceMBean { 
    private String message = "Sorry no message today"; 
    public String getMessage(){ 
     return message; 
    } 
    public void setMessage(String message){ 
     this.message = message; 
    } 
    public void printMessage(){ 
     System.out.println(message); 
    } 
    public void start() throws Exception{ 
     System.out.println(">>>>Starting with message=" + message); 
    } 
    public void stop() throws Exception{ 
     System.out.println(">>>>Stopping with message=" + message); 
    } 
} 
+1

Comment avez-vous compilé votre interface? –

+0

Vous devez spécifier le chemin de classe (contenant les classes dont dépendent vos classes) lors de la compilation. –

+0

Pouvons-nous voir du code? –

Répondre

1

Vous devez vous assurer que vos fichiers de classe sont placés dans le dossier du package. Par exemple Si votre interface est définie sous package - pkg1, votre fichier de classe doit être sous le sous-dossier pkg1.

Votre structure de répertoire devrait ressembler à ceci:

srcfolder -+ 
      +- pkg1 -+- MeterMovementServiceMBean.class 
      |  +- MeterMovementService.class 
      | 
      +- MeterMovementService.java 
      +- MeterMovementServiceMBean.java 

Soit vous devez déplacer les fichiers de classe manuellement, ou mieux encore, vous pouvez compiler vos fichiers .java à l'aide de la commande ci-dessous, pour laisser la poignée du compilateur tout cela pour vous:

javac -d . MeterMovementServiceMBean.java 
+0

Je n'ai aucun paquet. tout mon code est directement sous le dossier src. –

+0

@winstonsanker. Aucun problème? Je ne comprends pas votre commentaire. –

+0

Je pensais que vous avez dit, votre classe et l'interface sont dans le même paquet? –

1

javac -d . *.java compile tous les fichiers java dans le répertoire courant et les paquets compilés classfiles en fonction de leur structure de package.