IntelliJ - 以Sudo运行程序

时间:2010-12-10 21:39:53

标签: intellij-idea

使用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任何想法或解决方法。

5 个答案:

答案 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

祝你好运!