2011-06-29 10 views
2

私は広範囲にJavaを使用してきたのでかなりの時間がかかりました。おそらくかなり単純だと思うものに問題があります。コードはLinuxシステム上にあり、私はjavacと他のコマンドラインツールを使用しています。Javaコンパイルの問題。おそらく単純

2つのファイルは、コンパイルされません。ここでITranslator.javaという名前の、最初のです:

 
package org.helloopensource.greetings; 

public interface ITranslator { 
    public abstract String translate(String fromLanguage, String toLanguage, String word); 
} 

ここGreeting.javaという名前の二つ目は、です:

 
package org.helloopensource.greetings; 

public class Greeting { 
    private ITranslator translator; 

    public Greeting(ITranslator translator) { 
      this.translator = translator; 
    } 

    public String sayHello(String language, String name) { 
      return translator.translate("English", language, "Hello") + " " + name; 
    } 
} 

私がコンパイルしようとすると、私が手:

 
> javac -classpath `pwd` Greeting.java 
Greeting.java:4: cannot find symbol 
symbol : class ITranslator 
location: class org.helloopensource.greetings.Greeting 
    private ITranslator translator; 
      ^
Greeting.java:6: cannot find symbol 
symbol : class ITranslator 
location: class org.helloopensource.greetings.Greeting 
    public Greeting(ITranslator translator) { 
        ^
2 errors 

Iのように私はこれが何か単純だと思っています。どんな助けでも大歓迎です。ありがとう、

Sean。

+0

あなたは(Eclipseの、のIntelliJ IDEA、NetBeansの、...)IDEを使用していない任意の理由は? –

+1

@Matt - なぜ彼がすべきなの? – KevinDTimm

+0

@Kevin http://stackoverflow.com/questions/208193/why-should-i-use-an-ide –

答えて

9

Javaでは、パッケージファイルと一致するサブディレクトリにクラスファイルが存在する必要があります。したがって:

 
    mkdir -p org/helloopensource/greetings 
    mv *.java org/helloopensource/greetings/ 
    javac -classpath . org/helloopensource/greetings/*.java 

する必要があります。

+2

+1これは正しい方法です。 ( '-classpath .'を省略することができます。与えられていなければこれがデフォルトです) –

+0

これを行う正しい方法です。 –

関連する問題