Я хочу пересмотреть старый вопрос о компиляции классов в памяти. Поскольку прошло около полутора лет с тех пор, как я попросил (и был несколько ответил), я хотел бы снова поднять вопрос и посмотреть, появится ли что-то новое (так что нет, я не считаю это дубликат) ,java in-memory on-the-fly класс компиляции (и загрузки)
Старый вопрос можно найти здесь: On-the-fly, in-memory java code compilation for Java 5 and Java 6 - Я предлагаю прочитать его (и ответы), прежде чем отвечать на этот вопрос.
Я вполне доволен beanshell, выполняющим тяжелую работу по оценке строки класса java до фактического объекта класса. Тем не менее, beanshell стоял на версии 2.0b4 целую вечность и его ограничения (без конструктора, даже не по умолчанию, никаких дженериков, нет для каждого, без перечислений ...) раздражают.
Напоминание - это должно использоваться как интерфейс отладки, поэтому соображения производительности незначительны. Тем не менее, я не могу перезагрузить сервер, не могу отправить файлы классов в место, и JSP - очень плохой выбор для меня (я не буду вдаваться в причины здесь). Кроме того, конечный продукт должен быть классом (или объектом этого класса), чтобы я мог его пропустить.
Некоторые ограничения: у меня не может быть JDK, поэтому нет javax.tools.JavaCompiler. Я не могу иметь JSP, так как у меня нет tomcat или другого «реального» веб-контейнера. Поддержка синтаксиса Java 5 будет отличной, особенно дженериками, перечислениями и параметризацией. Поддержка конструкторов по умолчанию будет очень приятной.
Любые идеи?
Редактировать 1: Я только что узнал, что существует круглый способ создания конструкторов в beanshell - однако вы должны объявить их «public void XXX() {...}« вместо обычного »public XXX() {...}».
№ Вопрос лицензирования. Кроме того, клиент может изменить JRE, с которым работает мой сервер, так что это проблема совместимости. –