проблема компиляции Java.Наверное просто - PullRequest
2 голосов
/ 30 июня 2011

Прошло довольно много времени с тех пор, как я широко использовал java, и у меня возникли проблемы с чем-то, что, я думаю, возможно, довольно просто. Код в системе Linux, и я использую javac и другие инструменты командной строки.

Два файла, второй не скомпилируется. Вот первый, названный 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

Как я уже сказал, я подозреваю, что это что-то простое или глупое, что я делаю неправильно. Любая помощь будет принята с благодарностью.

Спасибо

Шон.

Ответы [ 2 ]

9 голосов
/ 30 июня 2011

Java требует, чтобы файлы классов находились в подкаталоге, совпадающем с именами их пакетов. Итак:

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

должен это сделать.

0 голосов
/ 30 июня 2011

javac * .java


...