2009-10-14 60 views
2

编译类我有两个类Hello1和你好了,我打电话类Hello类中Hello1构造函数,但是当我试图编译Hello类命令编译错误而在另一个

的javac Hello.java

我得到编译时错误:

Hello.java:6:cannot find the symbol 
symbol: class Hello1 
location: class Hello 
Hello1=new Hello(); 
^ 
Hello.java:6:cannot find the symbol 
symbol: class Hello1 
location: class Hello 
Hello1=new Hello(); 
     ^

但是,当我试图编译命令编译类:

javac Hello.java Hello1.java

它工作正常,但为什么我每次都必须使用此命令来编译该类?为什么编译器不能使用已编译的.class Hello1文件,以便下次使用命令javac Hello.java。

+0

您是否尝试将编译好的Hello1类的类路径传递给编译器? – Tom 2009-10-14 17:30:25

+0

在你的例子中,有错误的行看起来很奇怪:Hello1应该是一个类没有?请检查 – fvu 2009-10-14 17:32:23

+0

谢谢!现在我明白我在做什么错了。 – Dusk 2009-10-14 17:32:49

回答

1

您需要将当前目录添加到类路径中,以便编译器可以找到它。默认情况下,类路径不包含当前的工作目录,因此编译器将不会看到已编译的任何.class文件。为此,编译如下:

javac Hello.java -cp . 
+0

就像我想的那样! – Tom 2009-10-14 17:34:16

1

您需要使用-cp设置classPath。

+1

从iPhone发布并不是回答问题的最快方法:) – 2009-10-14 17:40:41