2012-04-26 103 views
0

我正在将一个linux工具移植到windows。该工具在Linux系统上工作正常,但现在在Windows上,我得到这个“无法找到符号”的错误。java导入“找不到符号”

我这个小主类:

package foo; 

import foo.bar; 

public class Main { 
    public static void main(String[] args) throws Exception { 
     bar.getInstance(); 
    } 
} 

,现在出现的错误,而这样做的javac Main.java:

进口foo.bar:找不到符号 ^ 符号:类吧 location:package foo

Main.java和bar.java在同一个目录下。 我错过了什么?

+0

尝试javac * .java你会得到相同的结果吗? – scrappedcola 2012-04-26 18:59:11

回答

5

一方面,bar应该叫Bar是地道......

理想情况下,你应该从目录编译以上 Main.java,像这样:

javac -d out foo/Main.java foo/Bar.java 

这会创建一个名为“out”的目录,其中包含另一个目录“foo”,该目录将包含Main.class和Bar.class。所以,再次从父目录,你可以运行:

java -cp out foo.Main 

源位置不相匹配的封装结构。您可以只需调用javac的含有Main.javaBar.java这样的目录:

javac -cp out Main.java Bar.java 

(然后以同样的方式像以前一样运行它),但它通常是一个更好的主意来构建根据您的源代码包装。

您可能更容易使用IDE(例如Eclipse或NetBeans),它将为您处理所有编译等。如果你想想要从命令行建立一个真实的项目,你应该看看使用完整的构建系统,如Ant或Maven。

(请注意,你会得到同样的错误在Linux上的Windows,如果你试图以同样的方式进行编译。)

+0

Thx为快速解决方案。 – MindlessMaik 2012-04-26 19:17:11

1

我想你需要尝试编译富之前正确编译的类吧,这是,在适当的包结构中生成类文件。