ウェブサイト検索

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.MFtecmintapp.jar に追加しましょう。

jar cvmf MANIFEST.MF tecmintapp.jar TecmintApp.class

5. 最後に、JAR ファイルを再度実行すると、出力に示されているとおり、期待どおりの結果が生成されるはずです。

java -jar tecmintapp.jar

Just executed TecmintApp!

詳細については、javajavac、および jar コマンドのマニュアル ページを参照してください。

man java
man javac
man jar

それだけです!この短い記事では、単純な Java アプリケーションを作成して JAR ファイルにバンドルする方法を説明し、 ターミナルから.jar ファイルを実行する方法を示しました。ご質問や補足的なアイデアがある場合は、以下のフィードバック フォームをご利用ください。