2013-08-11 7 views
6

jpcapの小さなJavaスニファツールを実装しました。これまでのところはうまく機能していますが、ネットワークデバイスにアクセスするにはroot特権が必要です。私は実行可能jarファイルに私のプロジェクトをエクスポートする場合は、私はターミナルでsudoを使用してそれを実行することができます:Mac OS Xでルート権限を持つjarをワンクリックで実行する

$ sudo java -jar littleSniffer.jar 

は、誰もがroot権限を持つ私の実行可能なjarファイルを実行するための「ワンクリック」 - 溶液を知ってい。そのツールを私の仲間に渡したいのですが、ターミナルを使わずに始めることができたらうれしいです。たぶんオートマトンアプリを使って? (

​​

とblah.commandとしてファイルを保存:あなたは、端末に満足している場合

、単に新しいファイルを作成し、このようなものに入れ:

答えて

7

はこのような何かを試してみてください。コマンド拡張子はダブルクリックでターミナルでshファイルを実行します)。

あなたが少しよりよい何かをしたい場合は、このようなosascriptをコマンド使用できます。rootパスワードのためのGUI要求を使用します

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

を。

注:それは実行可能にするために

chmod +x blah.command 

:あなたの.commandファイルが実行されていない場合、あなたがする必要があるかもしれません。

+0

いいね。 osascriptのアプローチは、答えにhttp://stackoverflow.com/a/2714651/274350として記述されており、その質問には他にも良い提案がいくつかあります。 –

0

uuencode/uudecodeを使用してシェルスクリプトにJARを埋め込みます。 、そして、

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

スクリプト内でJARを埋め込むためにuuencode -m littleSniffer.jar littleSniffer.jar >> littleSniffer.commandを実行します。 は、その中に以下の行をlittleSniffer.commandというシェルスクリプトを作成します。

+1

おそらくそれは私だけですが、あなたのスクリプトはちょうど意味がありません。あなたはそれが何をしているのか詳しく説明できますか?ありがとう。 –

+1

@GáborBakosこれは、以前のJARファイル(スクリプトが中断された場合など)を削除し、自分自身をデコードし(uudecodeはスクリプト全体をデコードせず、 'begin'と 'end'マークがある)、JARファイルを実行してそれを取り除く。 – Mitsos101

関連する問題