Intellij no parecen estar haciendo básica caliente código de swap en mi instalación.

Por 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");
    }
}

Puedo poner un punto de interrupción en mainTest.method1();, a continuación, modificar la cadena en method2(), pulse ctrl+s y seguir paso por paso. Por desgracia, el tiempo de ejecución no se actualiza, la antigua cadena que se imprime. Que se detenga por completo compilar y ejecutar la impresión de la nueva cadena. Así que mi conclusión es hot-swap no funciona.

Hay alguna configuración que necesita para configurar para permitir el código de intercambio?

  • Ubuntu, JDK 1.6
  • Intellij 10.5 Final (evaluación)
  • Nunca he oído hablar de intercambio en caliente para la línea de comandos de aplicaciones, sólo para aplicaciones web.
  • Viniendo de eclipse, que no este yo esperaría intellij a ser capaz de hacer esto así. Me estoy perdiendo algo?

6 Comentarios

  1. 73

    Después de guardar su clase mientras se espera en el punto de interrupción sólo vuelve a compilar la clase con Build -> Compile 'MainTest.java' o pulse Ctrl+Shift+F9 con el estándar de asignación de teclas.

    IntelliJ IDEA mostrará un pequeño cuadro de diálogo en el que se le preguntará si desea volver a cargar la clase.

  2. 11

    Después de debajo de las modificaciones y la habilitación de intercambio en caliente, un cambio en un archivo Java tomó 1-2 segundos de tiempo de reinicio. (Iniciales de su hora de inicio es alrededor de 7 segundos para mí).

    Espero a continuación el método de ayuda…


    En primer lugar, usted necesita para comprobar «crear proyecto de forma automática» en el menú de preferencias.

    Para abrir el menú de preferencias;

    usted puede ir al menú superior y haga clic en;

    IntelliJ IDEA -> Preferencias

    o puede escribir a continuación de acceso directo a través del teclado;

    cmd + opción + s

    A continuación, puede comprobar Make project automatically como en la siguiente imagen;

    Cómo habilitar Intellij caliente código de intercambio

    En segundo lugar, usted necesita para modificar compiler.automake.allow.when.app.running configuración del registro como verdadero.

    Abrir el registro, usted necesita para hacer clic en siguiente atajo de teclado:

    cmd + mayús + a

    Tipo registry como en la foto de abajo, seleccione Registry, y pulse el botón enter del teclado;

    Cómo habilitar Intellij caliente código de intercambio

    Después de Registry ventana que se abre, escriba compiler.automake a ver compiler.automake.allow.when.app.running opción, y ver como en la siguiente imagen;

    Cómo habilitar Intellij caliente código de intercambio

    Que, es necesario reiniciar IntelliJ a realizar cambios en el registro de trabajo.

    • HotSwap me funciona cuando me depurar la aplicación y, a continuación, construir el proyecto o simplemente compilar un archivo. Sin embargo, no funciona en guardar incluso después de que la configuración del registro anterior se hizo. Es porque estoy en la Depuración y no Correr?
    • sí – en IntelliJ debe estar en modo de Depuración para intercambio en caliente para el trabajo.
  3. 5

    Hay un Debugger > HotSwap opción en intellij 11.

    • Hay un «Eclipse» Modo de plugin, que funciona exactamente igual que eclipse del fondo compilación incremental.
    • Buen comentario, lamentablemente, el plugin no parecen ser mantenidos más plugins.intellij.net/plugin/?id=3822
    • intellij 12 también 😉
    • En intellij 13 uso: Archivo->Ajustes->(tipo HotSwap en el campo de búsqueda)
  4. 2

    Ir a Configuración –> Seleccione Debug –> HotSwap

    Cómo habilitar Intellij caliente código de intercambio

    • Incluso cuando se utiliza este todavía tengo que indicar manualmente intelliJ volver a compilar. Esto hace que sea un poco más fácil porque usted no tiene que responder a la pregunta de si desea volver a cargar las clases.
  5. 1

    Quería hotswap para que se ejecute automáticamente cada vez que me guarda un archivo Java. Ninguna de las otras respuestas hizo esto, así que simplemente:

    1. Creado una macro que se ejecutará en guardar: https://stackoverflow.com/a/5581992/14731
    2. Añadido Action: Hotswap al final de la macro (Run -> Reload Changed Classes)
  6. 0

    Me he encontrado este problema en Ubuntu. Yo también tuve una aparentemente no relacionados problema donde IntelliJ dio un error sobre el archivo de reloj límite (mis disculpas que ya no tengo el mensaje de error exacto). Para resolver esto más adelante problema hice los siguientes pasos:

    1. Agregue la línea siguiente a /etc/sysctl.conf o un archivo nuevo *.conf archivo (por ejemplo,idea.conf) bajo /etc/sysctl.d/ directorio:

      fs.inotify.max_user_watches = 524288
      
    2. A continuación, ejecute este comando para aplicar los cambios:

      sudo sysctl-p –sistema de

    Ahora mi Reaccionan los componentes de la reconstrucción y de intercambio en caliente bien.

    Fuente

    • Tengo problema similar. sin embargo, este (el aumento de archivo observador) no me ayuda.

Dejar respuesta

Please enter your comment!
Please enter your name here