Компиляция однотипных классов ant

177
13 апреля 2017, 16:48

Всем привет. Есть файл build.xml с помощью которого пытаюсь откомпилировать все классы, что есть в пакеты. Исходными данными являются вот эти .java-файлы:

Но после компиляции появляется уже такое:

Вот такая цель у ant :

<target name="compile" depends="compile_libs">
    <echo message="${msg_info_compile}" />
    <javac
        source="1.8"
        srcdir="${git.src}"
        includeantruntime="false"
        destdir="${git.classes}"
        debug="yes">    
    </javac>
</target>

Что это за файлы, как это пофиксить, и почему размер CreateSudokuGUI.java настолько отличается от его .class файла по размеру?

Answer 1

В процесс компиляции java файлов создаются class файлы, которые содержат байт-код. Для каждого класса описанного в java файле создается отдельный class файл. Имя class-файла совпадает с имением класса описанного в коде.

Если класс вложен в другой класс, то его имя формируется из имени внешнего класса, знака $ и имени внутреннего класса.

Если у класса нет имени (анонимный класс), то в качестве имени берется имя внешнего класса, к нему добавляется знак $ и число (порядковый номер класса).

MainForm.java скорей всего содержит несколько различных компонент у которых добавлены обработчики событий. Каждый обработчик события - это анонимный класс и поэтому компилятор создал несколько файлов: MainForm$1.class, MainForm$2.class и т.п.

CreateSudokuGUI.java вероятно содержит не только класс CreateSudokuGUI, но и класс frame1, который в свою очередь содержит 2 анонимных класса.

READ ALSO
Политика паролей Spring Security

Политика паролей Spring Security

Необходимо в админке веб приложения реализовать возможность изменения парольной политикиТ

255
Unable to load class, to missing dependency

Unable to load class, to missing dependency

Мне нужно загружать файл на сервер:

251
Правильный класс для конвертации JSON

Правильный класс для конвертации JSON

Подскажите пожалуйста пытаюсь с ЯндексПереводчика получать список поддерживаемых языковСам ответ с сервера приходит в таком виде:

175