使用Java和IntelliJ在OSX上开发程序。处理网络套接字和ICMP。因此,程序需要在OSX上以root用户身份运行或sudo'd。程序在sudo下的IntelliJ外的终端窗口运行正常。但是,我想从IntelliJ(V9)调试并运行它。在IntelliJ中它出错(我需要root privs来枚举网络设备)。我知道如何在IntelliJ中传递程序和VM参数但是现在如何点击Run和/ Debug并让它在sudo下运行?所需要的基本上是sudo java ...... MyProgram而不是java ..... MyProgram任何想法或解决方法。
答案 0 :(得分:40)
我想出了一个答案,想要分享它以防万一其他人遇到这个问题。为了解决这个问题,我从QT& amp; QT Creator在进行网络编程时。
在OSX上,我打开了一个终端窗口并向下转到/ Applications / IntelliJ IDEA 9.0.3.app/Contents/MacOS。在那里你会找到一个名为idea的文件来启动IDE。我把它作为sudo(sudo ./idea)。这照顾了Intellij推出的任何内容的权限,我可以根据需要调试并逐步执行我的代码。
sudo /Applications/IntelliJ IDEA 9.0.3.app/Contents/MacOS/idea
由于这是一台开发机器,我控制它,在这种情况下安全性不是问题。
希望它可以帮助其他人。
答案 1 :(得分:3)
在终端内:
sudo -s
授予root用户访问权限。
从那里你可以使用脚本运行Idea IDE:
/Applications/IntelliJ\ IDEA*/bin/idea.sh
通过这种方式,我可以在以前打印过许可错误的网络上工作。
答案 2 :(得分:1)
操作系统不允许调试sudo程序,除非调试器以root身份运行,出于安全原因。
所以,即使你可以弄清楚如何让IntelliJ使用sudo,它对你没有任何好处。
答案 3 :(得分:1)
我知道这不是OP直接问的- 如果有人需要在Linux(Ubuntu)上执行此操作,例如为了更新Idea,只需从命令行运行:
sudo /usr/local/bin/idea
只有确保更新和重启完成后才能真正关闭Idea并正常启动
答案 4 :(得分:0)
我同意@Darron,不建议使用sudo执行IntelliJ。 您可以改为使用IntelliJ终端执行。 我在IntelliJ中维护我的项目。当我需要执行需要sudo访问的单元测试时,只需打开IntelliJ终端并输入:
sudo gradle test
祝你好运!