Недавно я столкнулся с проблемой компиляции хорошего, правильного исходника на джаве.
Посылал я файл Main.java с публичным классом Main, естественно.
Но до описания класса Main у меня было описание НЕ публичного класса Event.
Судя по всему, ejudge решил, что это и есть мой публичный класс и незамедлительно переименовал на сервере мой исходник в Event.java.
Естественно, при дальнейшей компиляции javac это оказалось не по нраву, потому что public class Main must be declared in file "Main.java" not "Event.java"
насколько я понял, ejudge ищет первый попавшийся описуемый класс и переименовывает посланный исходник в "имя_класса.java"
есть предложение пофиксить данное недоразумение, а именно искать не первый класс, а первый публичный.
Неправильная обработка посылок на языке java
Re: Неправильная обработка посылок на языке java
Мне это не кажется существенным. Вообще, по правилам, в файле должен быть только один класс, имя которого должно совпадать с именем файла. Если нужно определять более одного класса, можно классы вкладывать друг в друга.