SquidEpps
SquidEpps

Reputation: 31

Is it possible to preview which class files will Java compiler generate?

Is there an option for javac, say --dry-run, that will instruct the compiler not to do the actual compilation, but to parse the source file(s) and list which .class files (including package path) will be generated?

Consider this example:

$ 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

The source file was compiled into two .class files and, as the -d option was specified, package structure was generated. I would like to know such information before compilation. Something like this:

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

Alternatively, if there is no such an option for javac, is there any third-party utility that can do such a thing?

Upvotes: 3

Views: 303

Answers (1)

saikumarm
saikumarm

Reputation: 1575

try

javac -verbose -d . javaclass.java

this actually lists all the actions that a compiler is working on. towards the end you can what all classes have been generated with package structure.

I have compiler via the above code. I get the below output towards the end of the list.

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

There are lot of other options, just type javac on the command prompt to look at them.

I don't know if I one can know, prior to compiling, this information.

Upvotes: 2

Related Questions