是否可以预览Java编译器生成哪些类文件?

时间:2014-12-18 06:51:31

标签: java packages javac

是否有javac的选项,比如说--dry-run,它会指示编译器不要进行实际的编译,而是解析源文件并列出哪个.class将生成文件(包括包路径)?

考虑这个例子:

$ cat example.java
package whatever.example;
class First {}
class Second {}
$ javac -d . example.java
$ find .
.
./example.java
./whatever
./whatever/example
./whatever/example/First.class
./whatever/example/Second.class

源文件被编译为两个.class文件,并且在指定-d选项时,生成了包结构。我想在编译之前知道这样的信息。像这样:

$ javac --dry-run -d . example.java
./whatever/example/First.class
./whatever/example/Second.class

或者,如果javac没有这样的选项,是否有任何第三方实用程序可以执行此类操作?

1 个答案:

答案 0 :(得分:2)

尝试

javac -verbose -d . javaclass.java

这实际上列出了编译器正在处理的所有操作。最后,您可以使用包结构生成所有类。

我通过上面的代码编译。我在列表的末尾得到了以下输出。

[wrote RegularFileObject[.\com\SC\JustTesting.class]]
[wrote RegularFileObject[.\com\SC\JustTestingSecond.class]]

还有很多其他选项,只需在命令提示符下键入javac即可查看它们。

我不知道在编译之前我是否可以知道这些信息。