Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

Try embedding the JAR into a shell script by using uuencode/uudecode. Create a shell script called littleSniffer.command with the following lines in it:

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

Then, run uuencode -m littleSniffer.jar littleSniffer.jar >> littleSniffer.commandin order to embed the JAR inside the script.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top