我有这些文件:
c:\MY_SOURCES\AClient.java
c:\MY_SOURCES\Pluto.java
c:\MY_SOURCES\com\Classes\Pluto.class
进入AClient.java我有
import com.Classes.*;
Pluto p = new Pluto();
当我使用:
编译文件时javac -classpath . AClient.java
编译器告诉我它无法访问Pluto
作为错误的源文件Pluto.java
...但如果我将Pluto.java
移离c:\MY_SOURCES
则会编译。
答案 0 :(得分:2)
您的源文件夹应该镜像您的包结构。如果它没有javac混淆。理想情况下,您编译的.class文件夹应与源文件夹位于不同的根目录中。
所以
c:\MY_SOURCES\AClient.java (assuming in the default package)
c:\MY_SOURCES\com\Classes\Pluto.java
c:\MY_COMPILED\com\Classes\Pluto.class
javac -classpath=c:\MY_COMPILED -d
c:\MY_COMPILED\ c:\MY_SOURCES\AClient.java
答案 1 :(得分:1)
重申......
C:\MY_SOURCES\AClient.java
C:\MY_SOURCES\com\Classes\Pluto.java
假设AClient.java包含...
import com.Classes.*;
public class AClient {
Pluto p = new Pluto();
}
此编辑确实有效
C:\MY_SOURCES\javac *.java
答案 2 :(得分:0)
也许您在Pluto文件中引入了错误。当你尝试编译AClient时,它也会尝试编译Pluto(因为它被AClient使用)并且会遇到错误。如果你删除了Pluto.java,你可以从之前的(成功的)编译获得类文件,并且它使用它,并且它可以工作。您应该检查Pluto.java并查看它是否自行编译,或者是否存在任何其他问题。