0

最近、NetBeans で非常に単純な GUI アプリケーションを開発しましたが、開発を進める前に、別のコンピューターでアプリケーションをテストすることにしました。アプリケーションの配布についてよく知らず、正しく行っていることを確認したかったからです。 .

NetBeans では正常に動作し、Run->Clean and Build Project をクリックすると、プロジェクトの dist フォルダーに期待どおりに .jar ファイルが作成されます。自分のコンピューターで dist フォルダーから .jar ファイルを実行すると、期待どおりに実行されます。

次に、別のコンピューターで(フラッシュドライブから)いくつかの異なる方法で実行しようとしましたが、どれも機能しませんでした:

  1. jar ファイルのみをフラッシュ ドライブにコピーして実行しようとしたところ、「メイン クラスが見つかりませんでした: MyApplicationPackage.MyApplication.Program will exit.」というエラーが表示されました。

  2. NetBeans で、[ファイル] -> [プロジェクトのエクスポート] -> [Zip へ...] をクリックし、zip フォルダをフラッシュ ドライブにコピーしました。他のコンピューターでファイルを解凍したとき、dist フォルダーはありません (実際にあるとは思っていませんでした)。

  3. プロジェクト フォルダー全体をフラッシュ ドライブにコピーし、他のコンピューターで jar ファイルを実行しようとしたところ、同じエラー メッセージが表示されました。

他のコンピューターで実行するにはどうすればよいですか? また、アプリケーションを配布する簡単な方法はありますか? ファイルを解凍し、dist フォルダーを見つけ、jar ファイルを実行する方法を平均的な人が知っているとは思いません。どうにかして、すべてを 1 つの実行可能なファイルに結合できますか?

編集:私は自分で解決策を見つけました:他のコンピューターのJavaのバージョンは現在のバージョンではありませんでした。アプリケーションを実行するために、プロジェクトのプロパティ ウィンドウを開きました。[ソース] タブの下に、[ソース/バイナリ形式] というオプションがあります。それを以前のバージョンの Java に変更すると、他のコンピューターで実行できるようになります。もう 1 つの (そしてより良い) オプションは、他のコンピューターで現在のバージョンの Java にアップグレードすることです。

4

1 に答える 1

1

メインクラスの場所を示すMANIFESTファイルがあるかどうかを確認する必要があります。

Maven を使用している場合は、アセンブリ プラグインを使用できます。これにより、指定した引数で MANIFEST ファイルが生成されます。

<plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
                <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                        <manifest>
                                <addClasspath>true</addClasspath>
                                <mainClass>com.blabla.Main</mainClass>
                        </manifest>
                        <manifestEntries>
                                <SplashScreen-Image>splashscreen.png</SplashScreen-Image>
                        </manifestEntries>
                </archive>
        </configuration>

</plugin>

編集:

于 2012-11-15T14:09:53.500 に答える