Как включить горячую замену кода Intellij - PullRequest
59 голосов
/ 19 июня 2011

Intellij, похоже, не выполняет базовую горячую замену кода в моей установке.

Для этого кода:

public class MainTest {
    public void method1() {
        System.out.println("Breakpoint here");
    }

    public void method2() {
        System.out.println("Line that will get 24 modified");
    }

    public static void main(String[] args) {
        System.out.println("First print here");
        MainTest mainTest = new MainTest();
        mainTest.method1();
        mainTest.method2();
        System.out.println("Line that I do not modify");
    }
}

Я ставлю точку останова на mainTest.method1();, затем изменяю строку в method2 (), нажимаю Ctrl + S и продолжаю шаг за шагом. К сожалению, среда выполнения не обновляется, старая строка печатается. Full stop - compile - run выводит новую строку. Так что мой вывод, что горячая замена не работает.

Есть ли какие-либо настройки, которые мне нужно установить для включения горячей замены кода?

  • Ubuntu, JDK 1.6
  • Intellij 10,5 Ultimate (оценка)

Ответы [ 6 ]

77 голосов
/ 19 июня 2011

После сохранения вашего класса во время ожидания на точке останова просто перекомпилируйте ваш класс с помощью Build -> Compile 'MainTest.java' или нажмите Ctrl+Shift+F9 со стандартными привязками клавиш.

IntelliJ IDEA покажет небольшое диалоговое окно, в котором вас попросятесли вы хотите перезагрузить этот класс.

12 голосов
/ 29 декабря 2016

После указанных ниже изменений и включения горячей замены изменение файла Java заняло 1-2 секунды времени перезапуска.(Начальное время запуска для меня составляет около 7 секунд).

Надеюсь, что приведенный ниже метод поможет ...


Во-первых, вам нужно проверить «Сделать проект автоматически» в меню настроек.

Чтобы открыть меню настроек;

, вы можете перейти в верхнее меню и щелкнуть;

IntelliJ IDEA -> Настройки

или вы можете ввести ниже ярлык черезклавиатура;

cmd + опция + s

Затем вы можете проверить Make project automatically, как показано на рисунке ниже;

enter image description here

Во-вторых, вам нужно изменить параметр реестра compiler.automake.allow.when.app.running на true.

Чтобы открыть реестр, вам нужно щелкнуть ниже сочетание клавиш:

cmd + shift + a

Введите registry, как показано на рисунке ниже, выберите Registry и нажмите кнопку ввода на клавиатуре;

enter image description here

После открытия окна Registry введите compiler.automake, чтобы увидеть параметр compiler.automake.allow.when.app.running, и проверьте его, как показано на рисунке ниже;

enter image description here

Затем необходимо перезапустить IntelliJ дляВсе изменения реестра работают.

5 голосов
/ 24 августа 2012

Существует опция Debugger > HotSwap в intellij 11.

2 голосов
/ 19 августа 2016

Перейти к настройке -> Выбрать отладку -> Горячая замена

enter image description here

1 голос
/ 19 января 2019

Я хотел, чтобы hotswap автоматически запускался каждый раз, когда я сохранял файл Java. Ни один из других ответов не сделал этого, поэтому я просто:

  1. Создан макрос, который будет запускаться при сохранении: https://stackoverflow.com/a/5581992/14731
  2. Добавлено Action: Hotswap в конце макроса (Run -> Reload Changed Classes)
0 голосов
/ 01 февраля 2018

Я столкнулся с этой проблемой в Ubuntu. У меня также была явно не связанная проблема, когда IntelliJ выдавал ошибку об ограничении времени просмотра файлов (мои извинения, что у меня больше нет точного сообщения об ошибке). Чтобы решить эту проблему позже, я сделал следующие шаги:

  1. Добавьте следующую строку либо в файл /etc/sysctl.conf, либо в новый файл * .conf (например, idea.conf) в каталоге /etc/sysctl.d/:

    fs.inotify.max_user_watches = 524288
    
  2. Затем выполните эту команду, чтобы применить изменение:

    sudo sysctl -p --system

Теперь мои компоненты React перестраиваются и меняются без проблем.

Источник

...