3

JARファイルを作成しましたが、EclipseがインストールされているPC(XP)で正常に実行されます。また、Eclipseを搭載した別のPCでも動作します。

Eclipseを搭載していない別のPC(XP)で実行してみました。JDKと複数のJREが含まれていますが。JARファイルは、クリックまたはコマンドプロンプトから実行されません。

完全にはわかりませんが、環境変数が適切に設定されていないことが推測されます。コマンドプロンプトから受け取るエラーは次のとおりです。

Exception in thread "main" java.lang.NoClassDefFoundError: ...

どんな助けでもいただければ幸いです。

4

3 に答える 3

4

CLASSPATHの問題である必要があります。

スタックトレースには、検出に失敗したクラスも示されている必要があります。それができたら、どのjarにそのクラスがあるかを見つけます。次に、そのjarファイルをクラスパスに追加するか、クラスパスenv変数に追加します。

于 2010-09-02T16:58:01.470 に答える
3

他の人が言っているように、これはおそらくクラスパスの問題です。

注意すべきことの1つは、jarがどのように構築されているかです。ダイアログには、実行可能なjarをエクスポートするためのいくつかのオプションがあります。

  • クラスをjarに抽出します
  • 依存関係をjarに圧縮します-jar内にjar-in-jar-loader.jarを作成します。
  • jarファイルをjarの隣のサブディレクトリに配置します。

これに何を選択したかによって、jarがどのように動作するかによって異なります。クラスが抽出される場合、JDKにない依存クラスはクラスパス上にある必要があります。簡単なので、この一連のアクションをお勧めします。

さて、問題は-eclipseプロジェクトのビルド依存関係ではなく、クラスパスへの依存関係を使用していますか?もしそうなら、Eclipseはそれを知らないので、それはjarにパック/圧縮/配置されません(ただし、Javaはクラスパス上にあるため、システム上でそれを検出します)。また、ANTスクリプトを保存し、Eclipseでビルドパスを更新した場合、eclipseはそのANTスクリプトを更新しません。これは1回だけ生成されます。

于 2010-09-02T17:08:25.450 に答える
0

jarファイルをクリックして呼び出すときに環境変数は考慮されません(javaw -jar your.jarを実行するのと同じです)。

Eclipse以外の最初のPCでも動作しないと確信しています。

于 2010-09-02T17:05:53.553 に答える