使用包时,javac只能在父目录下工作吗?

时间:2017-03-20 17:22:33

标签: java

我使用cmd编译我的java应用程序,但是当我使用package打包所有文件时,如果我尝试在工作目录中编译它们,即使我使用文件的完整路径,也不会工作。但是,当我转到父目录时,相同的命令工作。并且仅在父目录,子目录或其他目录中工作也不起作用。有人可以告诉我为什么吗?或者是否有任何解决方案使javac在工作目录中工作,因为我使用Sublime Text,它的构建器配置并绑定工作目录。

2 个答案:

答案 0 :(得分:1)

阅读https://docs.oracle.com/javase/tutorial/java/package/managingfiles.html以了解应如何组织Java源文件。特别是,

  

...将源文件放在名称反映名称的目录中   类型所属的包...

默认情况下,my.pkg.MyClass的源代码必须位于current_directory/my/pkg/MyClass.java。您可以使用javac option -sourcepath以外的当前目录。

答案 1 :(得分:0)

例如,您在父目录中的两个不同的包packageapackageb中有两个类。

类名分别是 ClassA.java ClassB.java ,并且您已经打包了类在这些包中,你有 在父目录中使用javac命令,如下所示:

javac packagea\ClassA.java packageb\ClassB.java

您的目录结构如下:

Parent_directory
  |
  |--packagea->ClassA.java
  |--packageb->ClassB.java

否则,您可以使用antmaven之类的任何构建工具进行编译 你的代码。您必须运行build.xml文件并且您的所有文件都将运行 编译。