Есть ли опция для javac
, скажем --dry-run
, которая даст указание компилятору не выполнять фактическую компиляцию, а проанализировать исходный файл (ы) и список, из которых будут создаваться файлы .class
(включая путь пакета)?Можно ли просмотреть, какие файлы классов будут генерироваться компилятором Java?
Рассмотрим следующий пример:
$ 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
, есть ли утилита третьей стороной, которая может сделать такую вещь?
Я не знаю ни одного такого варианта, но, учитывая, что в любом случае придется делать много работы, почему бы не просто скомпилировать временный каталог? –
Для компиляции во временный каталог потребуется «проанализировать результаты». И сделать результаты надежными закончится написанием специализированной утилиты. Прежде чем это сделать, я хотел бы знать, какие у меня варианты. – SquidEpps
Я не знаю, что вы подразумеваете под «разобрать результаты» здесь - вы просто будете ходить по дереву каталогов. Как это связано с синтаксическим разбором? –