java 如何编译多个文件_当其他包中有java文件时,如何编译多个java文件

  • Post author:
  • Post category:java


Javac

documentation提供了所有必要的信息.但是,使用Ant或Maven命令行构建可能是有用的.

This页面提供了使用第一个javac和Ant构建一个简单项目的一个很好的例子.

这是一个示例项目,它如何使用javac进行编译.

这个项目的树结构是:

.

├── build

└── src

├── attacks

├── drivers

│   └── Driver.java

└── exceptions

└── MyException.java

有两个特殊目录 – 构建用于包含编译的类和src以包含源文件(可以在不同的子目录 – 包中).

以下命令编译整个项目并将结果放入构建目录.

javac -sourcepath src -d build src/**/*.java

-sourcepath src将目录src指定为编译器可以找到所有源的位置. -d构建选项告诉编译器放置编译文件的位置.

选项src / ** / *.java告诉编译器要实际编译哪些文件.在这种具体情况下,它会告诉javac将两个级别向下看,并在该级别选择所有* .java.

如果有不同级别的* .java文件需要指定的文件列表.为此,可以创建一个这样的列表作为一个外部文件,并传递这个文件作为javac的输入选项.

以下是在Linux / Unix下如何做到这一点:

find -name “*.java” > source.txt

上述命令创建文件source.txt,其中包含找到的* .java文件的完整路径.对于这个例子,它包含:

./src/drivers/Driver.java

./src/exceptions/MyException.java

为了编译项目,列出的源文件被刷新到source.txt中,可以使用以下命令:

javac -d build @source.txt

请注意,最后指定的@ source.txt告诉编译器在哪里查找源文件列表.还请注意,-sourcepath选项可以省略.

运行上述命令后,目录结构如何更改.

.

├── build

│   ├── drivers

│   │   └── Driver.class

│   └── exceptions

│   └── MyException.class

└── src

├── attacks

├── drivers

│   └── Driver.java

└── exceptions

└── MyException.java

可以看到,构建目录现在包含相应包中的编译的类文件.

而且,如果要运行它,假设例如,该驱动程序具有方法main,则以下命令执行该程序.

java -cp .:build:**/*.class drivers.Driver

请注意,文件分隔符:(冒号)在Unix下使用,Windows将其更改为; (分号).



版权声明:本文为weixin_39607865原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。