java编译问题.可能很简单

Sea*_*ean 2 java javac package

我已经有很长一段时间了,因为我已经广泛使用了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

就像我说的那样,我怀疑这很简单,或者说我做错了.任何帮助将不胜感激.

谢谢,

肖恩.

Gre*_*ill 9

Java要求在与其包名匹配的子目录中找到类文件.所以:

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

应该这样做.

  • +1这是正确的方法.(您可以省略`-classpath .`,因为如果没有给出,这是默认值.) (2认同)