3

これは私の最初の質問ですので、間違いがあればお詫びします。できる限りの情報を提供しようと思います。基本的に、画像を JPanel にロードして表示するだけの簡単なスイング アプリケーションを作成しました。私は Netbeans 7.1 を使用しており、最新バージョンの Java SDK を持っています。とにかく、NetBeans 7.1 の「ビルド」機能を使用して、アプリケーションを Jar ファイルに配備しました。PC で Jar ファイルをダブルクリックすると、問題なく実行されます。ただし、他のコンピューターに配置すると(これまでに他の2台でテストされ、両方とも最新のJREでテストされました)、次のエラーを引用して開くことができません:

メイン クラスが見つかりませんでした: swong.Startup. プログラムは終了します

swong はパッケージ名で、Startup はメイン メソッドの場所です。Netbeans のビルドで作成されたマニフェスト ファイルを確認しましたが、[マニフェスト] には実際にメイン メソッド クラスの場所が含まれています。

検索の結果、クラスパスが間違って設定されているという同様の問題に遭遇しましたが、これがどのように特定のエラーを引き起こすのかわかりません。

誰かが私を助けてくれたら、私は大喜びです。私は 1 年ほど Java を勉強してきて、よく理解できましたが、自分のものではないコンピューターで動作する Jar を作成することはできませんでした。それでは、10点とよろしくお願いします。

xo。

編集:回答ありがとうございます。私は交代制の仕事をしていて忙殺されていますが、明日これらの回答をテストして突き刺し、より多くの情報を提供します. 再度、感謝します。xo

4

3 に答える 3

2

jarファイルが(少なくとも)次の構造になっていることを確認してください

jarfile.jar
  |---------- swong
                |---------- Startup.class
  |---------- META-INF
                |---------- MANIFEST.MF

クラス「Startup」が欠落しているようです。たぶんあなたのjarファイルには.javaファイルだけが含まれていて、コンパイルされたクラスは含まれていません。

于 2012-05-03T08:44:30.517 に答える
2

アプリの配布中に同じ問題が発生しました。「java -jar AppName.jar」を使用してバッチ ファイルを作成し、ユーザーにこのバッチ ファイルをダブルクリックしてアプリを実行するように求める 1 つの解決策があります。私がしたことは、アプリに JRE インストール exe (例: jre_1.7.0) を提供することでした。次に、次のコマンドを書き込むバッチ ファイル (install.bat) を作成します。

jre_1.7.0 -> これにより、ユーザーの PC に jre がインストールされます

set path="C\Program Files\Java\jre_1.7.0\bin"

java -jar yourAppName.jar

さまざまな人がさまざまな JRE バージョンをインストールしているため、JRE をインストールした理由。したがって、これにより、インストールされた JRE の bin フォルダーへのパスを設定し、'java -jar' コマンドを呼び出すことが難しくなります。したがって、JRE インストールで作成されるフォルダーがわかっているので、パスを設定して「java-jar」コマンドで jar ファイルを実行するのは簡単です。

于 2012-05-03T09:00:48.313 に答える
0

このエラー メッセージは、java7 とは異なる Java ランタイム環境で Java7 コンパイル済みクラスを起動しようとすると、紛らわしい java7 エラーである可能性があります。.jar が他のテスト マシンの Java7 環境内で開始されていることを確認しましたか? 場合によっては、異なるバージョンの JRE をインストールしていて、どちらが実際に開始されているか分からないことがあります。

どの環境が使用されているかを確認するには、レジストリで次の値を確認します: HKEY_CLASSES_ROOT\jarfile\shell\open\command

これは、最新の JRE を指す必要があります。または、java6 との互換性を維持したい場合は、ビルド環境で適切なコンパイル レベルを定義してください。

于 2012-05-03T09:17:18.773 に答える