我使用cmd编译我的java应用程序,但是当我使用package打包所有文件时,如果我尝试在工作目录中编译它们,即使我使用文件的完整路径,也不会工作。但是,当我转到父目录时,相同的命令工作。并且仅在父目录,子目录或其他目录中工作也不起作用。有人可以告诉我为什么吗?或者是否有任何解决方案使javac在工作目录中工作,因为我使用Sublime Text,它的构建器配置并绑定工作目录。
答案 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)
例如,您在父目录中的两个不同的包packagea
和packageb
中有两个类。
类名分别是 ClassA.java 和 ClassB.java ,并且您已经打包了类在这些包中,你有
在父目录中使用javac
命令,如下所示:
javac packagea\ClassA.java packageb\ClassB.java
您的目录结构如下:
Parent_directory
|
|--packagea->ClassA.java
|--packageb->ClassB.java
否则,您可以使用ant
或maven
之类的任何构建工具进行编译
你的代码。您必须运行build.xml
文件并且您的所有文件都将运行
编译。