使用Java和IntelliJ在OSX机上开发程序。处理网络套接字和ICMP。因此,需要在OSX上以root或sudo'd身份运行该程序。在sudo下,程序在IntelliJ外部的终端窗口中运行良好。但是,我想从IntelliJ (V9)调试和运行它。在IntelliJ中会出现错误(我需要root privs来枚举网络设备)。我知道如何在IntelliJ中传递程序和虚拟机参数,但现在如何点击运行和调试,并让它在sudo下运行?所需要的基本上是sudo java ......MyProgram而不是java .....MyProgram任何想法或变通方法。
发布于 2010-12-31 02:34:52
我拿出了一个答案,并想分享它,以防其他人遇到这个问题。为了解决这个问题,我借鉴了我在做网络编程时使用QT & QT Creator所做的事情。
在OSX上,我打开了一个终端窗口,用cd打开了/Applications/IntelliJ IDEA 9.0.3.app/Contents/MacOS。在那里,您将找到一个名为idea的文件,它将启动IDE。我将其作为sudo (sudo ./ide.)运行。它负责Intellij启动的任何内容的权限,我可以根据需要调试和单步执行我的代码。
sudo /Applications/IntelliJ IDEA 9.0.3.app/Contents/MacOS/idea
由于这是一台开发机器,我可以控制它,所以在这种情况下,安全性不是问题。
希望它能帮助其他人。
发布于 2010-12-11 06:37:50
由于安全原因,操作系统不允许调试sudo程序,除非调试器是以root用户身份运行的。
所以,即使你能弄清楚如何让IntelliJ使用sudo,它也不会给你带来任何好处。
发布于 2012-03-12 21:12:08
在终端内部:
sudo -s
将访问权限授予root用户。
在那里,您可以使用脚本运行Idea IDE:
/Applications/IntelliJ\ IDEA*/bin/idea.sh
通过这种方式,我可以在以前打印权限错误的网络上工作。
https://stackoverflow.com/questions/4413548
复制相似问题