Développer un programme sur OSX en utilisant Java et IntelliJ. Traite avec les sockets réseau et ICMP. Par conséquent, le programme doit être exécuté en tant que root ou Sudo'd sur OSX. Le programme fonctionne correctement depuis une fenêtre de terminal située à l'extérieur d'IntelliJ sous Sudo. Cependant, je voudrais le déboguer et l'exécuter à partir d'IntelliJ (V9). Dans IntelliJ, il y a des erreurs (j'ai besoin des privilèges root pour énumérer les périphériques réseau). Je sais comment transmettre les paramètres de programme et VM dans IntelliJ, mais maintenant, comment appuyer sur Run et/Debug et le faire fonctionner sous sudo? Sudo Java ...... MyProgram au lieu de Java ..... MyProgram Toutes les idées ou solutions de contournement sont nécessaires.
Je suis sorti avec une réponse et je voulais la partager au cas où quelqu'un d'autre se heurterait à cela. Pour résoudre ce problème, je me suis inspiré de ce que je faisais avec QT & QT Creator lors de la programmation réseau.
Sur OSX, j'ai ouvert une fenêtre de terminal et cd/Applications/IntelliJ IDEA 9.0.3.app/Contents/MacOS. Vous y trouverez un fichier appelé idea qui lance l'EDI. J'ai couru ça comme Sudo (Sudo./Idee). Cela s’occupait des autorisations sur tout ce qui était lancé par Intellij et je pouvais déboguer et parcourir mon code selon les besoins.
Sudo /Applications/IntelliJ IDEA 9.0.3.app/Contents/MacOS/idea
Puisqu'il s'agit d'une machine de développement et que je contrôle la sécurité, la sécurité n'est pas un problème dans ce cas.
J'espère que ça aide quelqu'un d'autre.
À l'intérieur d'un terminal:
Sudo -s
donne accès à l'utilisateur root.
à partir de là, vous pouvez lancer l’idée IDE à l’aide du script:
/Applications/IntelliJ\ IDEA*/bin/idea.sh
et de cette façon, je suis capable de travailler sur un réseau où les erreurs de permission étaient imprimées auparavant.
Le débogage des programmes Sudo est interdit par le système d'exploitation à moins que le débogueur ne soit exécuté en tant que root, pour des raisons de sécurité.
Donc, même si vous pouvez trouver comment amener IntelliJ à utiliser Sudo, cela ne vous fera aucun bien.