Я использую инструменты из API компилятора (javax.tools.JavaCompiler) для динамически генерируемого байт-кода Java. Я создаю исходный код и использую API для его компиляции, а затем использую его с помощью рефлексии.Javac: игнорирование «должно быть объявлено в файле с именем ...»
Это прекрасно, если я только попробую создать непубличные классы. Если я это сделаю, я получаю «класс MyClass является общедоступным, должен быть объявлен в файле с именем MyClass.java», что совершенно нормально, его не компилируют из файла Java.
Я ищу способ обойти эту ошибку, не найти ни одного из вариантов Java и API.
Ну, я пытался повторно запустить свой код поколения ... и это работает прекрасно. Я не знаю точно, что я изменил в своей библиотеке компиляции с тех пор, но я не могу воспроизвести эту ошибку. Во всяком случае, ваши ссылки отличные (что-то похожее на второе). – PomPom