Linux ターミナルで .Jar ファイルを作成して実行する方法
JAR (Java アーカイブ) は、多くの Java クラス ファイルおよび関連するメタデータとテキスト、画像などのリソースを 1 つのファイルに集約するために使用される、プラットフォームに依存しないファイル形式です。配布用。
これにより、Java ランタイムはアプリケーション全体を 1 つのアーカイブ ファイルに効率的にデプロイできるようになり、セキュリティ、要素の圧縮、ダウンロード時間の短縮、パッケージの封印とバージョン管理の実現、移植性のサポートなど、多くの利点が得られます。拡張機能のパッケージ化もサポートしています。
この記事では、単純な Java アプリケーションを作成してそれをJAR ファイルにバンドルする方法を示し、Linux ターミナルから .jar
ファイルを実行する方法を示します。
これを行うには、Java アプリケーションを起動するために Java コマンド ライン ツールがインストールされており、JAR ファイルにカプセル化されたプログラムを実行するために -jar
フラグが必要です。このフラグを使用すると、指定された JAR ファイルがすべてのユーザー クラスのソースとなり、他のクラス パス設定は無視されます。
Linux で JAR ファイルを作成する方法
1. まず、デモの目的で、TecmintApp というアプリケーションのメイン メソッドを含む単純な Java クラスを作成します。
vim TecmintApp.java
次のコードをコピーして TecmintApp.java ファイルに貼り付けます。
public class TecmintApp {
public static void main(String[] args){
System.out.println(" Just executed TecmintApp! ");
}
}
ファイルを保存して閉じます。
2. 次に、javac ユーティリティと jar ユーティリティを使用して、クラスをコンパイルして JAR ファイルに圧縮する必要があります。示されているように。
javac -d . TecmintApp.java
ls
jar cvf tecmintapp.jar TecmintApp.class
ls
3. tecmintapp.jar が作成されたら、次に示すように java コマンドを使用してファイルを実行できます。
java -jar tecmintapp.jar
no main manifest attribute, in tecmintapp.jar
上記のコマンドの出力から、エラーが発生しました。 JVM (Java 仮想マシン) はメインのマニフェスト属性を見つけることができませんでした。そのため、メイン メソッドを含むメイン クラスを見つけることができませんでした ( public static void main (String[] args))。
JAR ファイルには、アプリケーションの開始点として機能する main メソッドを持つクラスを定義する Main-Class:classname 形式の行を含むマニフェストが必要です。
4. 上記のエラーを修正するには、JAR ファイルを更新して、 コードとともにマニフェスト属性を含める必要があります。 MANIFEST.MF ファイルを作成しましょう。
vim MANIFEST.MF
次の行をコピーして MANIFEST.MF ファイルに貼り付けます。
Main-Class: TecmintApp
ファイルを保存し、次のコマンドを使用してファイル MANIFEST.MF を tecmintapp.jar に追加しましょう。
jar cvmf MANIFEST.MF tecmintapp.jar TecmintApp.class
5. 最後に、JAR ファイルを再度実行すると、出力に示されているとおり、期待どおりの結果が生成されるはずです。
java -jar tecmintapp.jar
Just executed TecmintApp!
詳細については、java、javac、および jar コマンドのマニュアル ページを参照してください。
man java
man javac
man jar
それだけです!この短い記事では、単純な Java アプリケーションを作成して JAR ファイルにバンドルする方法を説明し、 ターミナルから.jar ファイルを実行する方法を示しました。ご質問や補足的なアイデアがある場合は、以下のフィードバック フォームをご利用ください。