Ubuntu で jar ファイルを実行する際の問題

Ubuntu で jar ファイルを実行する際の問題

.jarのように実行するとスクリプトが実行されるのに java -jar myfile.jar、のように実行すると実行されないのは なぜですか?./myfile.jar

答え1

jarを実行するときは、java -jar myfile.jarシェルにjavaコマンドを実行するように指示し、理解できる引数を渡しますjava。ただし、./myfile.jarシェルに実行に使用する割り込みを決定するように要求しますが、これは実行できません。

シェルはスクリプトの先頭にあるシェバン行を探して、スクリプトを実行するアプリケーションを認識します。そのため、次のようなシェル スクリプトが表示されます。

#!/bin/bash

またはPythonスクリプトは次のように始まります

#!/usr/bin/python

/bin/bash基本的にシェルに指示しているのは、またはで見つけたアプリケーションを使用してスクリプトを実行することです。/usr/bin/pythonで見つかったアプリケーションを使用してスクリプトを実行することです。jar ファイルの場合、シェルはシバンを見つけることができないため、コードの実行方法がわかりません。

以前、Java アプリケーションを実行するためにラッパー スクリプトを使用していました。次のようなものでした。

#!/bin/bash

java -jar /path/to/myfile.jar

次に、 を使用してそれを実行可能ファイルを作成し、chmod他のシェル スクリプトと同じように実行します。

答え2

sudo apt-get install openjdk-7-jdk を使用して jdk をインストールし、sudo apt-get install openjdk-7-jre を使用して jre をインストールしましたが、それでもこの問題が発生しました。これは、システムが Java パスを見つけられなかったことが原因である可能性があると考えました。最終的に、次のコマンドを使用して Oracle jdk7 インストーラーをインストールしたところ、./myfile.jar コマンドを使用して .jar ファイルを実行できるようになりました。インストールには次のコマンドを使用しました。

sudo add-apt-repository ppa:webupd8team/java

sudo apt-getアップデート

sudo apt-get で oracle-jdk7-installer をインストールします

関連情報