run jar with root privileges on mac os x by one click

Philipp Li picture Philipp Li · Aug 11, 2013 · Viewed 7.1k times · Source

I implemented a small java sniffer-tool with jpcap. So far its functioning fine, but it needs root privileges to get access to the network-devices. In case of I export my project to a runnable jar, I can run it by using sudo in terminal:

$ sudo java -jar littleSniffer.jar 

Does anyone knows a "one click"-solution to run my runnable jar with root privileges. I want to give that tool to my workmates, and it would be nice I they could start it without using the terminal. Maybe by using the automator app?

Answer

Ed M picture Ed M · Jan 15, 2015

Try something like this:

If you are happy with terminal, just create a new file and put in something like this:

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

and save the file as blah.command (the .command extension runs the sh file in terminal on double click).

If you would like something a bit nicer, you could use the osascript command like this:

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

Which will use a GUI request for the root password.

NOTE: If your .command file isn't running, you may need to:

chmod +x blah.command

to make it runnable.