amtoaer

晓风残月

叹息似的渺茫,你仍要保存着那真!
github
x
telegram
steam
nintendo switch
email

.jarプログラムを「実行可能」にする

最近、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と似ています。

  1. ファイルを作成し、先頭にhashbangを書き込む

    touch a
    echo "#!/usr/bin/java -jar" > a
    
  2. 解釈する必要がある内容(.jar ファイル全体)をファイルの末尾に追加する

    cat /path/to/.jar >> a
    
  3. ファイルに実行権限を与える

    chmod +x ./a
    

これで、それを通常の実行可能ファイルとして使用することができます!

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。