最近、java
を使用してコマンドライン版の小牛翻訳を作成しました。maven
を使用して.jar
ファイルをビルドしました。しかし、.jar
プログラムは直接実行できないことがよく知られています。代わりにJVM
を使用する必要があります。
java -jar filename.jar ...arguments
これにより、使用体験があまり良くありません。では、.jar
プログラムを「実行可能」にする方法はあるのでしょうか?調べてみると、方法があることがわかりました。
この記事はこちらの記事を参考にしています。
Linux
では、実行可能なプログラムには 2 種類あります。バイナリプログラムとスクリプトファイルです。前者はマシンコードであり、直接実行できます。後者はインタプリタが必要であり、コードを解釈して実行します。スクリプトファイルでは、ファイルの先頭にhashbang
を追加してインタプリタを指定することができます。これにより、システムはスクリプトの内容をhashbang
で指定されたインタプリタで解釈します。
python
を例に取ります。通常、プログラムを実行するにはpython filename.py
と入力する必要がありますが、filename.py
の先頭に#!/usr/bin/python
を追加し、実行権限を与えると、./filename.py
で直接実行できます。
java
に戻りますが、.jar
ファイル自体はバイトコードの集まりであり、java -jar
はそれを解釈するためにJVM
を使用することを示しています。したがって、私たちの処理方法は実際にはpython
と似ています。
-
ファイルを作成し、先頭に
hashbang
を書き込むtouch a echo "#!/usr/bin/java -jar" > a
-
解釈する必要がある内容(.jar ファイル全体)をファイルの末尾に追加する
cat /path/to/.jar >> a
-
ファイルに実行権限を与える
chmod +x ./a
これで、それを通常の実行可能ファイルとして使用することができます!