[解決済み] NetBeans で作成した jar ファイルが動作しない
質問
そこで、NetBeansでswing GUIのプログラムを作り、buildをクリックしてjarファイルを作りました(非常にシンプル)。それをダブルクリックして実行すると、mainクラスが見つからないと言われます。しかし、コマンドプロンプトから実行すると、完全に動作します。この奇妙な動作について、何か簡単に判断できる理由があれば教えてください(もしソースコードが必要であれば、ここに掲載します)。
解決方法は?
NetBeansで必要だと思われるものは。
- プロジェクトは、メインプロジェクトでなければなりません(プロジェクトリストで右クリック)。
- プロジェクトのプロパティで、Main Classを設定する必要があります。 (右クリック→プロパティ→実行→メインクラス。)
そして、プロジェクトを右クリックして、quot;Clean and Build"を実行すると、jarは、quot;Clean and Build"の中にビルドされます。
dist
サブディレクトリに格納されます。
これで直らなかった場合は、もっと長い話になりますが......。
jarファイルをダブルクリックして実行すると、OSはコマンドラインからこれを入力したかのように動作します。
java -jar filename.jar
(コマンドラインからだとうまくいくというのは、このように入力しているのでしょうか?)
このとき、Javaの実行ファイルはjarの中にある次のような名前のファイルを探します。
META-INF/MANIFEST.MF
. そして、そのファイルの内容から、あるプロパティの値を探します。
Main-Class
. そして最後に、あなたのjarからその名前のクラスを探し、その静的な
main(String[])
メソッドを使用します。
そのため、jarの実行に失敗した場合は、以下のようにして何が起こっているのかをデバッグすることができます。
- NetBeansでプロジェクトをクリーンアップして再構築します。
-
クラスが実際にjarに含まれているかどうか、ダブルチェックします。
- コマンドプロンプトを起動する
-
cd
を入力します。dist
サブディレクトリを作成します。 -
のようなコマンドを使用します。
jar tf filename.jar
をクリックすると、中身が一覧表示されます。
-
をダブルチェックしてください。
MANIFEST.MF
ファイルが正しいことを確認します。- もう一度コマンドプロンプトで
-
cd
を入力します。dist
ディレクトリを作成します。 -
のようなコマンドを使用します。
jar xf filename.jar META-INF/MANIFEST.MF
を使用して、マニフェストを抽出します。 -
そのファイルの中身を見る(例えば
type META-INF\MANIFEST.MF
を確認します。Main-Class
には、適切なクラスが設定されています。
上記がすべてチェックアウトされたら、ファイルをダブルクリックします。 が必要です。 が動作します。
関連
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】スレッド "main "での例外 java.util.NoSuchElementException
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。
-
[解決済み】CreateProcess error=2, The system cannot find file specified.
-
[解決済み] Mavenを使用して、依存関係を持つ実行可能なJARを作成するにはどうすればよいですか?
-
[解決済み] Javaの「for each」ループはどのように機能するのですか?
-
[解決済み] Mavenプロジェクトにローカルのjarファイルを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み】Eclipseで「公開型 <<classname>> は独自のファイルで定義する必要があります」エラー【重複あり
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】文字列中の � を置換する方法
-
[解決済み] JavaでSSLピアが正しくシャットダウンされない
-
[解決済み】javaで無効な文字定数
-
[解決済み】 executeQuery()でデータ操作文が発行できない。)