17

Java プログラミングの世界の初心者として、この質問は常に頭を悩ませてきました。最初は、すべての Java ファイルが圧縮されappletsてから実行されると信じていましたが、すぐにそうではないことに気付きました。Java アプリケーションを実際に日常生活の製品に織り込む方法を誰か説明してもらえますか?

TL;DR: コードを実際に使用するためにどのように実装しますか?

4

4 に答える 4

28

アプリケーションによって異なります。ユーザーにアプリをどのように使用してもらいたいかによって、多くのオプションがあります。通常、瓶または特殊な瓶(戦争、耳)としてパッケージ化されています。

理論的には、ファイルを含む未加工のディレクトリ構造を圧縮し、ユーザーにコマンドを.class実行するシェル スクリプト/指示を提供できます。javaこれは専門的ではなく、プログラムを実行できるようにする OS ごとにシェル スクリプトを維持する必要があるため、お勧めしません。

Jar ファイルはライブラリをパッケージ化するために使用されますが、「誰かがこれをダブルクリック/実行すると、このクラスを実行する」というマニフェスト ファイルを含めることもできます。そのクラスは、GUI を起動したり、パラメーターに応答するヘッドレス タスクにしたりできます。

あなたが言ったように、アプレットを持つことができます。これらのプログラムは、ユーザーのブラウザーで実行されます。

war ファイルを使用できます。これは、Web アプリケーションをパッケージ化する方法です。これを Web サーバーに渡すと、サーバーは Web ページにアクセスできるようにデプロイする方法を認識します。Web サーバー/コンテナーの例はtomcatまたはjettyです。

内部に他の war ファイルを含むことができるear ファイルを持つことができます。これは、javaee 機能の他の部分 (ejbs、jms キューなど) を必要とするアプリケーションに使用されます。アプリケーション サーバーの例はjbossまたはglassfishです。

Java Web Startアプリもあります。これらは、Web ページにアクセスして実行できるアプリですが、コンピューターにダウンロードされ、ユーザーのコンピューターで実行されます (war/ear のようにサーバーのバックエンドではなく)。

javafxもあります。私はそれについて何も知りません。 FAQ をざっと読むと、Adobe の Flexに対する Java の回答のように見えます。xml 構成を使用して UI コンポーネントを構成します。JavaFX アプリがどの形式を使用するかはわかりませんが、「デスクトップまたはブラウザーにデプロイする」と表示されています。


以下のコメントで Sotirios Delimanolis が言及したように、これらのファイルは Ant や Maven などのビルド システムでビルドできます。また、java/javaee sdk に付属のツールを使用して「手動で」ビルドすることもできます。たとえばjar、sdk をインストールした場合は、パスにコマンドが含まれている必要があります。これらのビルド システムの詳細を次に示します。

  • メイヴン
    1. 高レベル (ビルド方法ではなく、何をビルドするかを指示します)
    2. 単なるビルドシステムではありません。また、依存関係管理などもあります。
    3. 意見あり(構成よりも規則を使用し、各構成ファイルは1つのアーティファクトを生成するなど)
    1. 低レベル (ものを構築する方法を教えます)
    2. フレキシブル
    3. 構成ファイルは、必要に応じて何でも実行でき、必要な数のアーティファクトを構築できます
    4. 簡単に学べる
  • SDK ツール
    1. 常に最新。EG: ごくまれに、maven/ant が構成オプションを設定できない場合があります
    2. コマンドが覚えにくい
    3. 非常に低いレベル
    4. それ自体では、繰り返し可能ではありません (例: スクリプトを作成しない限り、毎回自分で jar コマンドを入力する必要があります)
于 2013-05-14T18:01:22.930 に答える
1

アプリケーションがクライアント上で実行される場合は、実行可能な JAR としてパッケージ化され、さらにアプリケーション バンドル (Mac) としてパッケージ化されるか、exe にラップされるか (Windows)、または JAR を起動する実行可能スクリプトとペアになります。必要な VM 引数を設定します。

Web アプリケーションの一部である場合は、WAR または EAR としてパッケージ化され、Web サーバー上の適切な場所に配置されます。

単純なライブラリの場合は、通常、JAR (非実行可能) としてパッケージ化され、大規模なプロジェクトに統合するためにそのまま配布されます。

アプレットを実行してから実行しましたが、これが常に当てはまるとは限らないことにすぐに気付きました

実際、アプレットは最近では珍しく、その使用はお勧めできません。

于 2013-05-14T18:01:11.477 に答える