Как включить обмен быстрым кодом 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();
, затем изменил строку в методе2(), ударил ctrl + s и продолжил шаг за шагом. К сожалению, среда выполнения не обновляется, печатается старая строка. Полная остановка - компиляция - запуск печати новой строки. Поэтому мой вывод - "горячая замена", которая не работает.
Есть ли какие-то настройки, которые мне нужно установить для включения обмена горячим кодом?
- Ubuntu, JDK 1.6
- Intellij 10.5 Ultimate (оценка)
Ответы
Ответ 1
После сохранения вашего класса во время ожидания точки останова просто перекомпилируйте свой класс с помощью Build -> Compile 'MainTest.java'
или нажмите Ctrl+Shift+F9
со стандартными привязками клавиш.
Затем IntelliJ IDEA отобразит небольшое диалоговое окно, в котором спрашивается, хотите ли вы перезагрузить этот класс.
Ответ 2
После следующих изменений и включения горячей замены изменение файла 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 + a
Введите registry
как показано на рисунке ниже, выберите Registry
и нажмите кнопку ввода на клавиатуре;
![enter image description here]()
После открытия окна Registry
введите compiler.automake
чтобы увидеть параметр compiler.automake.allow.when.app.running
, и отметьте его, как показано на рисунке ниже;
![enter image description here]()
Затем вам нужно перезапустить IntelliJ, чтобы изменения в реестре работали.
Ответ 3
В intellij 11 есть опция Debugger > HotSwap
.
Ответ 4
Перейдите в Настройка → Выбрать Debug → HotSwap
![введите описание изображения здесь]()
Ответ 5
Я столкнулся с этой проблемой в Ubuntu. У меня также была явно не связанная с этим проблема, когда IntelliJ выдавал ошибку об ограничении времени просмотра файлов (мои извинения, что у меня больше нет точного сообщения об ошибке). Чтобы решить эту проблему позже, я сделал следующие шаги:
-
Добавьте следующую строку либо в /etc/sysctl.conf
либо в новый файл *.conf (например, idea.conf
) в каталоге /etc/sysctl.d/
:
fs.inotify.max_user_watches = 524288
-
Затем выполните эту команду, чтобы применить изменения:
sudo sysctl -p - система
Теперь мои компоненты React пересобраны и горячая замена просто отлично.
Источник
Ответ 6
Я хотел, чтобы hotswap автоматически запускался каждый раз, когда я сохранял файл Java. Ни один из других ответов не сделал этого, поэтому я просто:
- Создан макрос, который будет выполняться при сохранении: fooobar.com/info/18114/...
- Добавлено
Action: Hotswap
в конце макроса