2012-03-04 3 views
1

私のプログラムをより使いやすく、簡単に更新できるようにするには、インストール時にデスクトップ上に.jarファイルへのリンクを作成します。Linuxのリンクからjarを実行できるようにする

問題は次のとおりです。ファイルが実行可能ファイルとしてマークされていないため、ユーザーは隠しディレクトリを見つけてjarファイルを実行可能ファイルとしてマークする必要があります。ブリーチ。 、予見-巧みに、返信せずに行ったユーザーのパスワードを要求された

Runtime.getRuntime().exec(new String[]{"sudo","chmod","+x",home+"/"+dir+"/DevChat.jar"}); 

を、:

は、私が使用してみました。

だから私は A)そのため、ユーザ、 B)リンクは、「-jar blahblahblah.jarのjava」コマンドを実行してください、または Cを要求した後、実行時にユーザーのパスワードを与えることができるどのような方法がある)書きますそのファイルを実行可能ファイルとしてマークするインストールスクリプト?

+0

デスクトップ上にアプリケーションへのリンクを張ることは、Windowsのパラダイムです。* nixの味では実際には行われません。 –

答えて

0

自分が所有するファイルシステムオブジェクトの権限を変更するためにrootである必要はありません。

+0

ジョージによって...あなたは正しい!感謝のトン! bashに関するチュートリアルでは、ルートが必要であると思っていました... 乾杯! – J3RN

0

誰かが言ったように、あなたはjarファイルのパーミッションを変更するためにrootである必要はありません。
しかし、このファイルが管理者権限を必要とするフォルダに置かれている場合や、sudoを実行するときに-Sオプションを使用するだけの回避策はありません。
参照用に:Getting stdin from sudo command;)
乾杯!

P .:もちろん、ストリームを開いてから、私が想定している端末からストリームを取得する必要があります。しかし、問題がある場合はただ聞いてください。

+0

これはかなりクールです!私はこれを使用する必要があるとき別の機会が来ることを確信しています – J3RN

+0

私はいくつかの助けになったことをうれしい! :) – Kounavi

0

デスクトップにリンクを作成したので、ユーザーとのGUIベースのインタラクションをしたいと思っています。

もしそうなら、単にsudoの代わりにgksudoを使ってください。

Runtime.getRuntime().exec(new String[]{"gksudo","chmod","+x",home+"/"+dir+"/DevChat.jar"}); 

もう少し複雑なものが必要な場合は、Zenityをご覧ください。

+0

ねえ、それは素晴らしいです!このアプリケーションでは使用できないかもしれませんが、これは間違いなく便利です! – J3RN