[Intellij Idea] Actualiser le code en direct (sans redémarrer le jeu)
-
Bonjour à tous !
Je vais vous expliquer comment installer hotSwapAgent sur votre Intellij Idea !À quoi ça sert ?!
Cela sert à éviter de redémarrer à chaque fois le jeu dès que vous modifiez le code, les modifications seront en direct, ceci permettra de ne pas redémarrer Minecraft à chaque fois que vous avez un petit souci, un oublie, un rajout à faire, une légère modification ou encore pendant que vous essayez de doser/tester certaines fonctionnalités de votre mod.
Outils
Nous aurons besoins de 3 choses très important !
• hotSwapAgent
Non ce n’est pas un nouveau event … C’est le nom d’un gros outil qui est à la fois conteneur de plugin, manager de plugin, un registre de plugin … Bref en sois il gère tout ce qui touche aux plugins.
• DCEVM
Non ce n’est pas un éternuement, c’est le nom d’une JVM (Java Virtuel Machine) qui contient une amélioration de l’hotSwapAgent tout est pré-configurer.
• JAVA 1.8.0_181
Vous connaissez peut être ?
Installation
Premièrement, vérifiez que vous avez bien Java 1.8.0_181, n’essayez pas avec une autre en vous disant “oh ce n’est pas grave sa passe”, car non, ça ne passe pas j’ai essayé … Mais vous pouvez quand même essayer
(Dans le doute j’ai téléchargé le JDK & JRE 181)Maintenant il faut télécharger DCEVM et hotSwapAgent
(Pour ma part j’ai téléchargé “DCEVM-8u181-installer-build2.jar” et “1.4.2-SNAPSHOT (2019-06-26)”)Vous pouvez ranger dans un endroit le .jar de hotSwapAgent car seulement son chemin nous intéressera. Il sera nécessaire à chaque fois que vous allez lancer le débugger.
Nous allons devoir utiliser DCEVM, pour cela on va lancer une console CMD en administrateur.
Maintenez les touches Windows + R, une fois la console ouverte tapez “CMD” puis maintenez une nouvelle fois les touches CTRL + SHIFT + ENTRERNous allons lancer le .jar de DCEVM
java -jar "C:\votre-chemin\DCEVM-8u181-installer-build2.jar"
, (Vous changerez bien sûr le lien vers le dossier n’est-ce pas !) vous devriez avoir un GUI qui s’ouvre de “Dynamic Code Evolution VM installer”, vous devriez voir vos versions Java s’afficher, repérez les versions “1.8.0_181” puis sélectionnez et cliquer sur “Install DCEVM as altjvm” pour le JDK et JRE. Pour ma part dans “Installed altjvm” j’aiYes (25.71-b01-dcevmlight-26)
Vous pouvez ouvrir Intellij Idea si ce n’est pas déjà fait, dans le cas contraire je vous conseillerais de le relancer !
Nous avons besoin du plugin hotSwapAgent, rendez vous dans
File > Settings > Plugins
, puis cherchez (et installez) le plugin “hotSwapAgent” dans le marketplace.Maintenant vous pouvez aller dans un projet et faire un double shift, dans le menu qui apparaît vous cochez
compiler.automake.allow.when.app.running
.On va ensuite ajouter des arguments Java Arguments, il suffit d’aller dans le fichier
gradle.properties
et d’y ajouter les arguments suivant à la suite de “-Xmx3G”:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5010 -XX:+UnlockExperimentalVMOptions -javaagent:C:\\votre-chemin\\hotswap-agent-1.4.2-SNAPSHOT.jar -XXaltjvm=dcevm
N’oubliez pas comme précédemment à changer le chemin du fichier d’accès à votre hotSwapAgent.
Il ne reste plus qu’à lancer ! Pour les noobs comme moi, il faut cliquer sur le Debug (à droite du bouton Run) et non pas le Run car sinon ça marche beaucoup moins bien.
Vous n’avez plus qu’à sauvegarder vos changements (CTRL + S) et a retourné en jeu.
En cas de problème
En cas de problème il sera difficile de vous aider. Quelques trucs si jamais vous avez des soucis:
Vous ne trouvez pas
compiler.automake.allow.when.app.running
? Faite %(#428eff)[double shift] tapezregistry
en bas sousActions
allez dansRegistry ...
et vous devriez le trouver dans la liste.Le debug ne fonctionne pas ? Le jeu ce lance toujours comme avant sans soucis et sans possibilité de modifier le code en direct ? Allez dans
File > Settings > Tools > HotSwapAgent
cochez la caseEnable HotSwapAgent in all configurations
ensuite plus haut allez dansKeymap
cherchezReload
clique droit surReload Changed Classes
puisAdd Keyboard Shortcut
et mettez une touche raccourci qui permettra de forcer les changements. Vous devrez faireCTRL + S
pour sauvegarder les changements du code puis le raccourci que vous allez ajouter.Vérifiez que vous avez bien la variable d’environnement JAVA_HOME présente. (Sinon google “variable environnement java_home”)
Si dès le lancement vous avez une erreur du genre:
ERROR: transport error 202
c’est que vous avez une application déjà présente sur le port 5010, vous n’avez qu’à changer le numéro du port dans le Java Argument.Si vous avez une erreur
ERROR: transport error 202
après avoir sauvegardé le code / recompiler les class, c’est que vous êtes surement en Run et non pas en Debug. (bienvenue au club)Vérifiez que vous utilisez bien le bon JDK
File > Settings > Build, Execution, Deployment > Build Tools > Gradle
et vérifiez dans “Gradle JVM” que vous avez bien Java version “1.8.0_181” !Attention à tout ce qui est proxy qui peut causer des soucis, tout ce qui empêche l’accès à 127.0.0.1 et tout autres logiciels pouvant parasiter la connexion local.
Licence et attribution
Ce tutoriel rédigé par UtopiePhysique et publié sur Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International
-
Salut, est-ce possible d’utiliser sur éclipse? Car je ne connais pas IntelifIdea et je trouve éclipse vraiment bien xp
-
Intéressant. Cela fonctionne avec les versions récentes ?
-
@Mysterious_Dev Je développes en 1.15.2 et j’ai aucun soucis.
C’est surtout pour le “Java” en général et pas forcément pour “Minecraft” donc ça devrait fonctionner avec tout.Edit: Finalement pour Eclipse il y à beaucoup plus de choses à faire, je n’ai pas très envie de me pencher dessus, une petite recherche “hotswapagent eclipse setup”, bonne chance !
-
Ok merci pour l’info ;).
-
Bonjour,
Je ne comprends pas l’intérêt de tout cela, il y a déjà du hotswap par défaut en Java, il suffit juste de lancer le jeu en debug depuis son IDE (que ce soit via Eclipse ou IDEA). Qu’apporte de plus toutes ces manipulations ?
-
@robin4002 J’ai essayé il me semble et ça ne fonctionnait pas pour moi
J’ai peut être râté un truc … J’ai regardé plusieurs tuto et personne parlait de hotswap par défaut et uniquement des tutos en anglais qui expliquait pour Minecraft sur Intellij Idea.
J’avais essayé plusieurs trucs sans rien et j’avais rien qui s’actualiser. J’ai lu que par défaut Java ne pouvait auto rafraîchir des class une fois dans la pile.
#boulet