使用用户定义包进行编译时遇到问题

时间:2019-11-27 00:20:06

标签: java

我正在学习Java,因此决定使用Notepad ++进行编码。

现在我正在尝试创建自己的包结构,但发现了一些问题。

1-)我将CLASSPATH设置为:

;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\htmlconverter.jar;%JAVA_HOME%\jre\lib;%JAVA_HOME%\jre\lib\rt.jar;C:\projects;

C:\projects是我的软件包的新用户定义目录。

文件结构为: C:\projects\study\Lab03->为我的classe01.java

并且: C:\projects\study->代表我的classe02.java

class01的编码如下:

package study.Lab03;

    public class classe01{
        public void execute(){
            System.out.println("test");
        }

    }

class02是:

import study.Lab03.*;

    public class classe02{
        public static void main(String[] args){
            classe01 cl01 = new classe01();
            cl01.execute();
        {
    }

我正在尝试:

C:\projects\study\Lab03>javac classe01.java 

classe01的编译很好。

然后我尝试:

C:\projects\study>javac classe02.java

但是我收到以下错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

package语句必须与文件层次结构匹配。

您在package study.Lab03;中有classe01.java,因此源路径中的相对文件名必须为study\Lab03\classe01.java。由于完整路径为C:\projects\study\Lab03\classe01.java,因此 CLASSPATH必须引用C:\projects

您在文件夹classe02.java中有文件C:\projects\study,我们刚刚得出结论,C:\projects是根目录,该文件必须包含一个package study;语句。

通常最好不要定义CLASSPATH,然后在编译和运行时将其放在根文件夹中,或者使用-cp命令行选项。

注意:对于根文件夹是命名为C:\project还是C:\projects,您的问题似乎很困惑。根据需要调整连接名称。