使用包编译类会引发错误

时间:2017-06-27 14:00:33

标签: java

我对java很新,并试图让基础知识失败。其中一个是处理package,我尝试使用package HelpPack;将一个类实现到另一个类中,并在使用javac -d HelpPackage A.java时抛出错误javac: file not found: A.java。谢谢你的帮助

//B.java
package HelpPack;

public class B{

    public String name(){

        return "Class b";

    }

}

//A.java
package HelpPack;

public class A{

    public static void main(String[] args){

        B b = new B();

        System.out.println(b.name());

    }

}

3 个答案:

答案 0 :(得分:1)

-d specifies where the class files will go. Your java files need to be in that directory too and command should be javac HelpPack/*java

答案 1 :(得分:1)

您的包需要与实际目录匹配。

因此,您的班级A.java应位于HelpPack目录中。

根据 documentation

-d directory
     

设置类文件的目标目录。该目录必须已存在; javac不会创建它。如果一个类是apackage的一部分,javac将该类文件放在反映该类的子目录中   包名称,根据需要创建目录。例如,如果你   指定-d C:\ myclasses,该类名为com.mypackage.MyClass,   然后调用类文件   C:\ myclasses \ COM \ mypackage中\ MyClass.class。       如果未指定-d,则javac会将每个类文件放在与生成它的源文件相同的目录中。

     

注意:-d指定的目录不会自动添加到用户类路径中。

答案 2 :(得分:1)

编译所有课程

javac -d .  *.java

并使用

运行
java HelpPack.A

查看javac工具

  

从工具doc:默认情况下,编译器将每个类文件放在同一目录中   它的源文件。您可以使用指定单独的目标目录   -d(参见下面的选项)。

package教程。