即使经过oracle文档,我也很难理解classpath的概念。请帮助我解决这个问题。
我有以下目录结构
Sample
|
-----source
| |
| src
| |
| Test2.java
|
------classes
|
com
|
Test1.java
源代码如下
Test1.java
package classes.com;
public class Test1
{
public static void main(String[] args)
{
System.out.println("In file Test1 in com package....");
}
}
Test2.java
package source.src;
public class Test2
{
public static void main(String[] args)
{
Test1 test=new Test1();
System.out.println("In class src..Test2...");
}
}
我将Test1.java编译为
Q:\Sample>javac classes\com\Test1.java
并且工作正常
现在,因为Test2.java依赖于Test1.java所以我起诉了以下命令
javac -classpath classes\com source\src\Test2.java
然而它的失败说明无法找到类Test1。
不确定我做错了什么。需要帮助
答案 0 :(得分:2)
无论结构是否错误,您都需要将类路径设置为顶级文件夹,其中包含完整的包名称(classes/com/Test1.java
),即:
javac -classpath . source\src\Test2.java
其中.
指向当前文件夹,该文件夹是包含classes
文件夹的文件夹。
另外,您忘记包含import语句:
import classes.com.Test1;
答案 1 :(得分:0)
首先,您的源文件未正确组织。 将所有.java文件保存在源目录下,并使用"类"或"构建"用于存储.class文件的目录。
运行应用程序时,请确保"类"或"构建"目录被添加为类路径。
存储类的根目录应设置为" classpath"。在你的情况下"类" directory是根文件夹。