intellij idea - Cómo habilitar el intercambio de código dinámico de Intellij
intellij-idea hotswap (5)
Después de guardar su clase mientras espera en su punto de interrupción, simplemente recompile su clase con Build -> Compile ''MainTest.java''
o presione Ctrl+Shift+F9
con los enlaces de teclas estándar.
IntelliJ IDEA mostrará un pequeño cuadro de diálogo en el que le preguntará si desea volver a cargar esa clase.
Intellij no parece estar haciendo un intercambio básico de código de acceso en mi instalación.
Para este código:
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");
}
}
Puse un punto de interrupción en mainTest.method1();
luego modifique la cadena en method2 (), presione ctrl + sy continúe paso a paso. Lamentablemente, el tiempo de ejecución no se actualiza, se está imprimiendo una cadena antigua. Punto final - compilar - ejecutar imprime la nueva cadena. Entonces mi conclusión es que el intercambio en caliente no funciona.
¿Hay alguna configuración que deba establecer para habilitar el intercambio de código caliente?
- Ubuntu, JDK 1.6
- Intellij 10.5 Ultimate (evaluación)
Después de las modificaciones a continuación y habilitar el intercambio en caliente, un cambio en un archivo Java tomó 1-2 segundos de tiempo de reinicio. (El tiempo de inicio inicial es de alrededor de 7 segundos para mí).
Espero que el siguiente método ayude ...
Primero, debe marcar "Hacer proyecto automáticamente" en el menú de preferencias.
Para abrir el menú de preferencias;
puedes ir al menú superior y hacer clic;
IntelliJ IDEA -> Preferencias
o puede escribir debajo del atajo a través del teclado;
cmd,
Luego, puede marcar "Hacer proyecto automáticamente" como en la imagen de abajo;
En segundo lugar, debe modificar la configuración de registro "compiler.automake.allow.when.app.running" como verdadera.
Para abrir el registro, debe hacer clic debajo del atajo de teclado;
cmd shift a
Escriba "registro" como en la imagen de abajo, seleccione "Registrar", y presione el botón enter del teclado;
Después de abrir la ventana "Registery", escriba "compiler.automake" para ver la opción "compiler.automake.allow.when.app.running", y verifíquela como en la imagen siguiente;
Entonces, debe reiniciar IntelliJ para que los cambios en el registro funcionen.
Encontré este problema en Ubuntu. También tuve un problema aparentemente no relacionado en el que IntelliJ dio un error sobre el límite de vigilancia del archivo (mis disculpas porque ya no tengo el mensaje de error exacto). Para resolver este problema posterior, hice los siguientes pasos:
Agregue la siguiente línea al archivo
/etc/sysctl.conf
o a un nuevo archivo * .conf (por ejemplo,idea.conf
) en el directorio/etc/sysctl.d/
:fs.inotify.max_user_watches = 524288
Luego ejecute este comando para aplicar el cambio:
sudo sysctl -p --system
Ahora mis componentes React se reconstruyen y se intercambian en caliente sin problemas.
Hay una opción Debugger > HotSwap
en intellij 11.