【问题标题】:java compile issue. Probably simplejava编译问题。大概很简单
【发布时间】:2011-09-25 11:33:45
【问题描述】:

自从我广泛使用 java 以来已经有一段时间了,我在一些我认为可能很简单的事情上遇到了麻烦。代码在linux系统上,我用的是javac等命令行工具。

两个文件,第二个不会编译。这是第一个,名为 ITranslator.java:

包 org.helloopensource.greetings; 公共接口 ITranslator { public abstract String translate(String fromLanguage, String toLanguage, String word); }

这是第二个,名为 Greeting.java:

包 org.helloopensource.greetings; 公共类问候{ 私人 ITranslator 翻译器; 公共问候(ITranslator 翻译){ this.translator = 翻译器; } 公共字符串sayHello(字符串语言,字符串名称){ return translate.translate("English", language, "Hello") + " " + name; } }

当我尝试编译时,我得到:

> javac -classpath `pwd` Greeting.java Greeting.java:4:找不到符号 符号:ITranslator 类 位置:类 org.helloopensource.greetings.Greeting 私人 ITranslator 翻译器; ^ Greeting.java:6:找不到符号 符号:ITranslator 类 位置:类 org.helloopensource.greetings.Greeting 公共问候(ITranslator 翻译){ ^ 2 个错误

就像我说的,我怀疑这很简单,或者我做错了什么愚蠢的事情。任何帮助将不胜感激。

谢谢,

肖恩。

【问题讨论】:

  • 您没有使用 IDE(Eclipse、IntelliJ IDEA、NetBeans 等)的任何原因?
  • @Matt - 他有什么理由这样做?
  • @Matt - 不同意 - 对于这个简单的东西,IDE 会阻碍。了解 API 以及如何使用 vi/emacs/xxx 将为您节省一天的时间。也就是说,我的“大”开发工作是在 IDE 中完成的,但我仍然使用普通的旧文本编辑器完成大量工作。
  • 两个原因,其实都一样。

标签: java package javac


【解决方案1】:

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

mkdir -p org/helloopensource/greetings mv *.java org/helloopensource/greetings/ javac -类路径。 org/helloopensource/greetings/*.java

应该这样做。

【讨论】:

  • +1 这是正确的做法。 (您可以省略-classpath .,因为如果没有给出,这是默认值。)
【解决方案2】:

javac *.java


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2011-01-27
    • 2017-01-28
    相关资源
    最近更新 更多