是否有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
没有这样的选项,是否有任何第三方实用程序可以执行此类操作?
答案 0 :(得分:2)
尝试
javac -verbose -d . javaclass.java
这实际上列出了编译器正在处理的所有操作。最后,您可以使用包结构生成所有类。
我通过上面的代码编译。我在列表的末尾得到了以下输出。
[wrote RegularFileObject[.\com\SC\JustTesting.class]]
[wrote RegularFileObject[.\com\SC\JustTestingSecond.class]]
还有很多其他选项,只需在命令提示符下键入javac
即可查看它们。
我不知道在编译之前我是否可以知道这些信息。