同じパッケージ内に2つのクラスがあります。両方のクラスにはmainメソッドがあります。次に、jarファイルを作成します。デフォルトのメインとしてさまざまなメイン機能を使用する2つのjarファイルを作成します。
例えば
class A
{
public static void main(String args[])
{
//do something
}
}
class B
{
public static void main(String args[])
{
//do something
}
}
NetBeans IDEでどのように行うのですか?
答えを見つけました。 Uはnetbeansで簡単に実行できます。1)プロジェクトを右クリックし、プロパティ>実行>クラスfrmを選択してドロップダウンリストを選択します。 netbeansではとても簡単です。 Netbeans岩!
Jarファイルで、これをmanifest.mftに追加するだけです。
Main-Class : A
Jarファイルは実行可能になり、正しいメインを呼び出します。
Netbeansでこれを行う方法については、次を参照してください。 NetBeansで実行可能jarを生成する
[プロジェクト]ウィンドウでプロジェクトノードを右クリックし、[プロジェクトプロパティ]を選択します。次に実行を検索します。そこでメインクラスをセットアップできます。
プロジェクトを右クリックして[設定を設定]を選択し、[カスタマイズ]を選択すると、そこからメインクラスを選択できます。
My.jarにclass1とclass2があり、それぞれにmainが定義されていると仮定すると、Javaを次のように呼び出すことができます。
Java my.jar class1
Java my.jar class2
Javaに他のオプションを指定する必要がある場合は、それらがmy.jarの前にあることを確認してください。
Java -classpath my.jar class1
2つの実行可能JARファイルを作成する場合、それぞれに独自のマニフェストファイルがあり、各マニフェストファイルは、実行を開始するために使用するmain()
メソッドを含むクラスを指定します。
各JARファイルでは、マニフェストはJAR内の次のパス/名前を持つファイルになります- META-INF/MANIFEST.MF
JARコマンドラインパラメータ を使用して、JARのマニフェストとして別の名前のファイルを指定する方法があります。
使用する特定のクラスは、META-INF/MANIFEST.MFファイル内で Main-Class:package.classname を使用して指定されます。
Netbeansでこれを行う方法については、頭の外ではわかりませんが、通常IntelliJやEclipseを使用し、通常はANTまたはMavenを使用してJARをビルドします。
作成する2つのjarの大部分が同じであり、唯一の違いがそれぞれから開始するメインクラスである場合、すべてのクラスを3番目のjarに入れることができます。次に、それぞれのマニフェストだけで2つのjarを作成します。 MANIFEST.MFファイルで、Main-Class
属性を使用してエントリクラスに名前を付けます。
さらに、Class-Path
属性を指定します。この値は、すべての共有コードを含むjarファイルの名前にする必要があります。次に、3つのjarファイルをすべて同じディレクトリにデプロイします。もちろん、サードパーティのライブラリがある場合は、それらもClass-Path属性にリストできます。
JarファイルのマニフェストでMain-Class属性を設定して、自動的に実行するファイルを指すことができます。
最善の方法は、Antスクリプトでこれを処理することです。 2つのjarファイルに対して2つの異なるタスクを作成できます。最初のjarのマニフェストファイルでメインクラスとしてクラスAを指定します。同様に、クラスBを2番目のjarのマニフェストファイルのメインクラスとして指定します。
netbeansからAntタスクを簡単に実行できます。
F11を押して、プログラムをビルドおよび実行します。プログラムを実行すると、クラスのリストが表示されます。リストからメインクラスを選択し、[OK]をクリックして実行します。
コメントとして、マニフェストファイルを変更できないことを意味するjarのクラスを顧客が実行できるようにする必要がありました(そうすることは期待できませんでした)。 Anthonyの投稿とsamy-deluxのコメントのおかげで、これは顧客が特定のクラスのメインにアクセスするために実行できることです。
Java -cp c:\path\to\jar\jarFile.jar com.utils.classpath -e -v textString