自从我广泛使用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
就像我说的那样,我怀疑这是一件简单的事,或者是一些愚蠢的我做错了。任何帮助将不胜感激。
谢谢,
肖恩。
答案 0 :(得分:9)
Java要求在与其包名匹配的子目录中找到类文件。所以:
mkdir -p org/helloopensource/greetings mv *.java org/helloopensource/greetings/ javac -classpath . org/helloopensource/greetings/*.java
应该这样做。
答案 1 :(得分:0)
javac * .java