jarとはどのようなファイル形式ですか?
jar はソフトウェア パッケージ ファイル形式で、通常、Java プラットフォーム アプリケーション ソフトウェアまたはライブラリを開発するために、多数の Java クラス ファイル、関連するメタデータ、およびリソース ファイルを 1 つのファイルに集約するために使用されます。JAR ファイルは、 a ファイル拡張子が「.jar」の ZIP 形式で構築されたアーカイブ ファイル。
#この記事の動作環境: Windows 7 システム、DELL G3 コンピューター、Java8.0。
ソフトウェア分野では、JAR ファイル (Java アーカイブ、英語: Java Archive) は、通常、多数の Java クラス ファイル、関連メタデータ、リソース (テキスト、画像) を集約するために使用されるソフトウェア パッケージ ファイル形式です。 、など) ファイルを Java プラットフォーム アプリケーションまたはライブラリを開発するためのファイルに変換します。
JAR ファイルは、.jar ファイル拡張子が付いた ZIP 形式で構築されたアーカイブ ファイルです。ユーザーは、JDK 独自の jar コマンドを使用して、JAR ファイルを作成または抽出できます。他の zip 圧縮ツールを使用することもできますが、マニフェスト ファイルを最初に配置する必要があることが多いため、圧縮時には zip ファイル ヘッダー内のエントリの順序が重要です。 JAR ファイル内のファイル名は Unicode テキストです。
JAR ファイル形式は、一般的な ZIP ファイル形式に基づいています。 ZIP ファイルとは異なり、JAR ファイルは圧縮と配布だけでなく、ライブラリ、コンポーネント、プラグインのデプロイメントとパッケージ化にも使用され、コンパイラや JVM などのツールで直接使用できます。マニフェストやデプロイメント記述子などの特別なファイルは、ツールに特定の JAR の処理方法を指示するために JAR に含まれています。
関連機能
JAR ファイル形式には多くの利点と機能があり、その多くは ZIP や RAR などの従来の圧縮形式では提供されません。
これらには次のものが含まれます:
セキュリティ JAR ファイルの内容にはデジタル署名を付けることができます。このように、署名を認識するツールは、他のファイルでは許可できないソフトウェア セキュリティ権限を選択的に付与することができ、コードが改ざんされていないかどうかも検出できます。
ダウンロード時間の短縮 アプレットが JAR ファイルにバンドルされている場合、ブラウザは各アプレットをダウンロードするのではなく、1 つの HTTP トランザクションでアプレットのクラス ファイルと関連リソースをダウンロードできます。新しいつながり。
圧縮 JAR 形式を使用すると、ファイルを圧縮してストレージ効率を高めることができます。
トランスポート プラットフォーム拡張機能 Java 拡張機能フレームワークは、Java コア プラットフォームに機能を追加する方法を提供します。これらの拡張機能は JAR ファイルにパッケージ化されています (Java 3D および JavaMail は Sun によって開発された拡張サンプルです) )。
推奨: 「java チュートリアル 」
パッケージ シール
JAR ファイルに保存されます パッケージオプションで、バージョンの一貫性とセキュリティを強化するためにシールすることができます。パッケージをシールするということは、パッケージ内のすべてのクラスが同じ JAR ファイル内に存在する必要があることを意味します。
パッケージのバージョン管理
JAR ファイルには、ベンダーやバージョン情報など、それに含まれるファイルに関するデータを含めることができます。
移植性
JAR ファイルを処理するメカニズムは、Java プラットフォーム コア API の標準部分です。
以上がjarとはどのようなファイル形式ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











プロジェクト ディレクトリ dockerfile に dockerfile ファイルを作成します。これは後で使用します。ファイルは、サーバー上に新しく作成された /data/docker/hellolearn フォルダーにデプロイされます (ファイル パスはカスタマイズできます)。Maven でパッケージ化された jar パッケージと上記で作成した dockerfile ファイルを、サーバー上に新しく作成されたフォルダー (/data) にコピーします。 /docker/hellolearn)。イメージを生成します dockerbuild-thellolearn.dockerbuild-t イメージ名: ラベル dockerfile の相対位置、ドットは現在のディレクトリを表し、タグが書き込まれていない場合のデフォルトは最新です。コンテナドキュメントの開始

JAR ファイルを実行するための前提条件 Linux システムで JAR ファイルを実行するには、Java 仮想マシン (JVM) やコア クラス ライブラリなどの Java アプリケーションを実行するために必要な基本コンポーネントである Java ランタイム環境 (JRE) をインストールする必要があります。 Ubuntu、Debian、Fedora、openSUSE などの多くの主流 Linux ディストリビューションは、ユーザーのインストールを容易にするための JRE パッケージのソフトウェア ライブラリを提供しています。次の記事では、一般的なディストリビューションに JRE をインストールする手順について詳しく説明します。 JRE をセットアップした後、個人の好みに応じて、コマンド ライン ターミナルまたはグラフィカル ユーザー インターフェイスの使用を選択して、JAR ファイルを開始できます。選択は、Linux シェルの知識と個人の好みによって決まるかもしれません。

maven コマンド: 1.mvncleanpackage-DskipTests: プロジェクト ディレクトリでこのコマンドを実行して、ターゲット ディレクトリに jar パッケージまたは war パッケージを生成します。 2.mvnclean: プロジェクトによって生成された一時ファイル (通常はモジュール下のターゲット ディレクトリ) をクリーンアップします 3.mvncompile-DskipTests: モジュール インストール コマンドは、他のモジュール (Dmaven.test) で使用できるように、パッケージ化された jar/war ファイルをローカル ウェアハウスにコピーします。 .skip=true はテストをスキップします (testcompile もスキップされます)。4.mvntest: テスト コマンド、または src/test/java/ を実行します。

Springboot の設定ファイルでは、設定ファイルの名前にそれぞれ意味と用途があります dev 開発環境 prod 本番環境 (デフォルト) test テスト環境 指定された設定ファイルを読み込みます --spring.profiles.active=prod jar パッケージをロードする springboot は、コンソールで直接開始します。欠点は、コンソールを閉じるとプロジェクトも閉じられることです。 java-jarbootdo.jar//このメソッドはバックグラウンドで実行できますが、シェルが起動されると、java-jar/bootdo-2.0.0.jar>bootdolog.file2>& もハングします。

1. SpringBoot は構成ファイルのパスを指定します。SpringBoot では、構成ファイルを jar パッケージの外に配置できるため、再パッケージ化やデプロイメントを行わずに構成を簡単に変更できます。構成ファイルのディレクトリを指定する方法は次のとおりです: (有効性の優先順位が高いものから低いものに並べられています) 1) コマンド ライン パラメーターを使用します: アプリケーションを起動するときに、--spring.config.location または -Dspring.config を使用できます。 location コマンドラインパラメータは、設定ファイルへのパスを指定します。例: (config の後の / は省略できません) java-jartest.jar--spring.config.locatio

まえがき: 仕事中に、サードパーティのプッシュ機能を統合する必要がある SpringBoot フレームワークで構築された Javaweb プロジェクトに遭遇したため、Xiaomi プッシュ サービスを使用して、関連する jar パッケージをダウンロードしました。ローカル jar をプロジェクトに導入することは大きな問題ではなく、コードを記述した後、テスト クラスのテストに合格することは問題ありません。次に、パッケージ化して開発サーバーにデプロイする準備をします。プロジェクトは Tomcat を通じてデプロイされるため、パッケージ化方法は war パッケージになります。パッケージ化後、開発サーバーにアップロードし、起動に成功した後、書き込まれたプッシュ インターフェイスをテストしてみると、失敗していることがわかりました。分析の結果、プロジェクトの依存 jar が保存されているパッケージ化された war の lib ディレクトリには、ローカルに導入されたプッシュ関連の jar パッケージが含まれていないことが判明しました。 30分ほど格闘した結果、問題は解決した。解決する

この話の背景には、magic-api と呼ばれるフレームワークがあります。ローコードでコードを記述し、動的にコンパイルして実行できます。ただし、インポート クラスを読み込む場合は、jar をその後、「新しいクラスの場合」にアクセスするたびに、クラスをプロジェクトに再ロードし、プロジェクトをパッケージ化してからインポートする必要があります...これは非常に面倒です。 ! !もちろん、マジックの一般的な実行プロセスについても言及する必要があります。ソース コードのコピーを取得すると、ヘッダー ファイルのインポートがソース コード内の Class.forName を通じてメモリに読み込まれます。 、次に URLClassLo を直接使用します。

まえがき: 会社は急いでいるプロジェクトを持っており、プロジェクトの要件の一部は以前のプロジェクトの機能の一部と同じです。高速化するために、前のマルチモジュール Maven プロジェクトのいくつかのモジュールを直接導入します。 jar パッケージの形式。新しいプロジェクトが開始されました。これにより開発時間が大幅に節約されましたが、プロジェクト jar の関連依存関係をインポートする必要も生じ、プロジェクトが肥大化して起動が遅くなりました。プロジェクトに必要な Bean だけをロードさせる方法はありますか?もちろん、ソースコードを直接修正して再パッケージ化して問題を解決することもできますが、この方法は面倒すぎます。 Baidu のメソッドを通じて、クエリは Springboot スタートアップ クラスの @ComponentScan アノテーションを使用して、コード サンプル @Componen を実装できます。
