web-dev-qa-db-fra.com

Comment activer l'échange de code à chaud Intellij

Intellij ne semble pas effectuer d’échange de code à chaud de base sur mon installation.

Pour ce code:

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

Je mets un point d'arrêt sur mainTest.method1(); puis modifie la chaîne à method2 (), appuie sur ctrl + s et continue à l'étape par étape. Malheureusement, le moteur d'exécution n'est pas mis à jour, l'ancienne chaîne est en cours d'impression. Arrêt complet - compilation - exécution imprime la nouvelle chaîne. Donc, ma conclusion est que le remplacement à chaud ne fonctionne pas.

Dois-je définir des paramètres pour activer l'échange de code à chaud? 

  • Ubuntu, JDK 1.6 
  • Intellij 10.5 Ultimate (évaluation)
55
Maxim Veksler

Après avoir enregistré votre classe en attendant votre point d'arrêt, recompilez simplement votre classe avec Build -> Compile 'MainTest.Java' ou appuyez sur Ctrl+Shift+F9 avec les raccourcis clavier standard.

IntelliJ IDEA affiche ensuite une petite boîte de dialogue dans laquelle il vous est demandé si vous souhaitez recharger cette classe.

71
joschi

Après les modifications ci-dessous et l'activation de l'échange à chaud, une modification dans un fichier Java a pris 1 à 2 secondes de temps de redémarrage. (Le temps de démarrage initial est d'environ 7 secondes pour moi). 

J'espère que la méthode ci-dessous aide ...


Vous devez d’abord cocher «Créer un projet automatiquement» dans le menu Préférences. 

Pour ouvrir le menu de préférences;

vous pouvez aller au menu du haut et cliquer;

IntelliJ IDEA -> Préférences

ou vous pouvez taper ci-dessous le raccourci clavier;

cmd + option + s

Ensuite, vous pouvez vérifier Make project automatically comme dans l'image ci-dessous;

 enter image description here

Deuxièmement, vous devez modifier le paramètre de registre compiler.automake.allow.when.app.running en tant que vrai. 

Pour ouvrir le registre, vous devez cliquer sur le raccourci clavier ci-dessous:

cmd + shift + a

Tapez registry comme dans l'image ci-dessous, sélectionnez Registry et appuyez sur le bouton Entrée du clavier;

 enter image description here

Une fois la fenêtre Registry ouverte, saisissez compiler.automake pour afficher l’option compiler.automake.allow.when.app.running, puis cochez-la comme indiqué dans l’image ci-dessous;

 enter image description here

Ensuite, vous devez redémarrer IntelliJ pour que les modifications du registre fonctionnent.

8
Berk

Il y a une option Debugger > HotSwap dans intellij 11.

5
Pratik Khadloya

Allez dans Paramètres -> Sélectionnez Débogage -> HotSwap 

 enter image description here

2

J'ai rencontré ce problème sur Ubuntu. J'ai également eu un problème apparemment non lié dans lequel IntelliJ a donné une erreur concernant la limite de surveillance des fichiers (toutes mes excuses, je n'ai plus le message d'erreur exact). Pour résoudre ce problème, j'ai suivi les étapes suivantes:

  1. Ajoutez la ligne suivante au fichier /etc/sysctl.conf ou à un nouveau fichier * .conf (par exemple, idea.conf) sous le répertoire /etc/sysctl.d/:

    fs.inotify.max_user_watches = 524288
    
  2. Puis exécutez cette commande pour appliquer le changement:

    Sudo sysctl -p --system

Maintenant, mes composants React sont reconstruits et remplacés à chaud.

La source

0
Code-Apprentice

Je voulais que Hotswap soit exécuté automatiquement à chaque fois que je sauvegardais un fichier Java. Aucune des autres réponses ne l'a fait alors j'ai juste:

  1. Création d'une macro qui s'exécutera lors de l'enregistrement: https://stackoverflow.com/a/5581992/14731
  2. Ajout de Action: Hotswap à la fin de la macro (Run -> Reload Changed Classes)
0
Gili