回答:
を実行することにより、常にjarファイルを実行できますjava -jar JMerise.jar
。
ただし、jarファイル自体を実行可能にするには、メッセージが示すように、実行可能ビットを設定する必要があります。chmod +x /home/aimad/Programms/jMerise/JMerise.jar
これを達成します。
その後、実行することができます./JMerise.jar
。
man chmod
chmodの動作に関する情報を提供します。
ファイルを右クリックしてプロパティをクリックし、[アクセス許可]タブに移動して、[このファイルをプログラムとして実行することを許可する]チェックボックスをオンにします。
最初に、システムに適切なJavaランタイム環境があることを確認する必要があります。Ubuntuの公式リポジトリにはopenjdkがあり、Oracle Javaと99.99%戦うことができます。
sudo apt-get install openjdk-7-jre
次に、java-jar-launcher.desktop
in というファイルを作成し~/.local/share/applications
、次の内容をその中に入れます。
[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False
次に、次の行を追加します~/.local/share/applications/mimeapps.list
。
application/x-java-archive=java-jar-launcher.desktop;
これで、jarファイルをダブルクリックして起動できるようになります。何も起こらない場合は、jarファイルを右クリックし、プロパティを選択して[開く]タブに移動し、[Java Application Launcher]が表示されます。 。
この方法は、危険な可能性のあるjarファイルへの実行許可を与えないため、好ましい(IMHO)です。この方法はグラフィカル環境でのみ機能し、ユーザーがファイルを手動でダブルクリックする必要があります。
jarアプリケーションを実行するとjava -jar application.jar
、javaがパス上にあることを意味します。2つの簡単なものが必要です。1)#!java -jar
シェルスクリプトで行うように、jarファイルjutの最初の行にインタープリター(明らかに)を追加します。
echo '#!java -jar' > app.jar
cat application.jar >> app.jar
mv app.jar application.jar
jarファイルの内容をcatすると、exで始まることがわかります
#!java -jar
PK
^lN BOOT-INF/PK
.....
.....
。2)実行属性を追加します。chmod +x application.jar
これで、を介して「自己実行」できます./application.jar
。
コマンドラインから.jarファイルを実行する(java -jar myFile.jar
)が、GUIでダブルクリックしても機能せず、sudo chmod +x myFile.jar
成功したように見えても、ダブルクリックで開けない場合、および.jarを右クリックした場合ファイル>プロパティ>パーミッション>「プログラムとしてファイルの実行を許可する」が機能しない(つまり、クリックするとチェックボックスが元に戻る)場合、おそらく.jarファイルはNTFSファイルシステムにあり、ファイルごとに。(たとえば、デュアルブートし、UbuntuとWindowsの間に共有NTFSパーティションがある場合、この問題が発生する可能性があります)。
ランチャーの作成(@ tusharkant15の説明どおり)は/usr/bin/java
、.jarファイル自体ではなく、実行中のバックグラウンドで実行されるため、機能します。.jarファイルをNTFSではない他のファイルシステムに移動しても機能します。