Как включить горячую замену кода Intellij


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 и продолжайте шаг за шагом. К сожалению, среда выполнения не обновляется, старая строка печатается. Полная остановка-компиляция-запуск печатает новую строку. Поэтому мой вывод-горячая замена не работает.

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

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

5 ответов:

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

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

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

Я надеюсь, что ниже метод помогает...


во-первых, нужно проверить "сделать проект автоматически" в меню Настройки.

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

вы можете перейти в верхнее меню и нажать;

IntelliJ IDEA - > Предпочтения

или вы можете ввести ниже ярлык с помощью клавиатуры;

cmd + option + s

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

enter image description here

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

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

cmd + shift + а

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

enter image description here

после типа compiler.automake посмотреть compiler.automake.allow.when.app.running опции и проверить его как на рисунке ниже;

enter image description here

чем, вам нужно перезапустить IntelliJ, чтобы изменения в реестре работали.

есть Debugger > HotSwap опция в intellij 11.

перейти к настройке -- > выберите отладка --> HotSwap

enter image description here

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

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

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

    sudo sysctl-p -- system

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

источник