通过一次单击在mac os x上运行具有root权限的jar

时间:2013-08-11 20:13:46

标签: jar root jpcap

我使用jpcap实现了一个小型java嗅探工具。到目前为止它的运行正常,但它需要root权限才能访问网络设备。如果我将项目导出到可运行的jar,我可以在终端中使用sudo来运行它:

$ sudo java -jar littleSniffer.jar 

有没有人知道“一键” - 解决方案来运行具有root权限的runnable jar。我想把这个工具交给我的同事们,我很高兴他们可以在不使用终端的情况下启动它。也许通过使用automator app?

2 个答案:

答案 0 :(得分:8)

尝试这样的事情:

如果您对终端感到满意,只需创建一个新文件并输入如下内容:

#!/bin/sh
sudo java -jar littleSniffer.jar

并将文件另存为blah.command(.command扩展名在双击时在终端中运行sh文件)。

如果你想要更好的东西,你可以像这样使用osascript命令:

#!/bin/sh
osascript -e "do shell script \"java -jar littleSniffer.jar\" with administrator privileges"

将使用root用户密码的GUI请求。

注意:如果.command文件未运行,您可能需要:

chmod +x blah.command

让它可以运行。

答案 1 :(得分:0)

尝试使用uuencode / uudecode将JAR嵌入到shell脚本中。 创建一个名为littleSniffer.command的shell脚本,其中包含以下行:

#!/bin/bash
rm -f littleSniffer.jar
uudecode $0
sudo java -jar littleSniffer.jar
rm -f littleSniffer.jar
exit

然后,运行uuencode -m littleSniffer.jar littleSniffer.jar >> littleSniffer.command以将JAR嵌入脚本中。