Сохранение исходного кода во время работы в Java

1

Это моя собственная версия karel the Robot. Робот Janitor, который может запускать только затмение. Моя проблема заключается в том, когда я открываю и я запускаю первый запуск робота в соответствии с кодами. но когда я попытался отредактировать коды, пока окно открыто, когда я снова нажимаю кнопку запуска, он не перемещается и ему нужно снова закрыть.

Это мой исходный код в методе run:

У меня есть класс janibot, который реализуется с помощью runnable и затем. и я создаю его экземпляр динамически с помощью этого кода.

Object tempJanibot = Class.forName(className).newInstance();
janibot = (Janibot) tempJanibot;
janibot.run()

где classname - это подкласс Janibot, который принимает значения на скриншотах.

Он успешно создал экземпляр метода takeTurns.

Но я подумал, что когда я редактирую код во время работы программы, и я нажимаю метод запуска, должен также обновляться класс takeTurns, но, к сожалению, он не будет обновляться, поэтому мне нужно снова закрыть его и нажать кнопку запуска.

Изображение 174551

Теги:

2 ответа

4
Лучший ответ

То, что вы ищете, - это горячая загрузка класса Java. Механизм по умолчанию в Java - это загрузка класса один раз в ссылку на classloader и повторное использование его при необходимости. Поэтому, пока приложение Java запущено, и если класс перекомпилирован, он не получит новое определение. Если вы хотите достичь аналогичной функциональности, вы можете искать решения, такие как JRebel или подпружиненные.

  • 0
    можешь привести пример?
  • 0
    Спасибо! подпружиненный решит мою проблему
Показать ещё 2 комментария
3

"Это не ошибка, это особенность!" Eclipse не может перекомпилировать ваш код во время его запуска и объединить эти изменения в вашу текущую программу. Вы должны будете перезапустить программу каждый раз.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню