0

Notepad++ を使用し、コマンド プロンプトから実行して、いくつかのデータベース接続を備えた単純な Swing アプリケーションを作成しました。それは完璧に実行されていました。

次に、アプリケーションを .jar ファイルとしてパッケージ化するために、すべてのコードを Netbeans にコピーし、メイン プロジェクトをビルドしようとしました。

.jar ファイルは正常に作成されましたが、実行しようとすると、正しく実行されませんでした。たとえば、データベースに存在するすべてのレコードを表示するボタンがアプリケーションにありました。コマンドプロンプトから実行すると動きましたが、.jarファイルを実行すると無反応でした。

4

2 に答える 2

2

いくつかのコードまたはエラー/例外スタックトレースを見ずに見分けるのは難しい。この種の問題の最も一般的な原因は、不完全なクラスパスです。データベースドライバクラスがクラスパスにない可能性があります。

あなたがチェックするかもしれないいくつかのこと:

  • なんらかのエラーが発生しますか?
  • jarは実行可能ですか?はいの場合(次のようなものでアプリケーションを起動する場合java -jar path/to/myjar.jar)、クラスパスをjarファイルのマニフェストで指定する必要-cpがあります。値はすべて無視されます。

最後のコメントを見ると、これはクラスパスの問題であると確信しています。データベースドライバは通常、別のjarファイルにあり、manifest.mfファイルのクラスパスエントリが空白の場合、ドライバをロードできません。これにより例外が発生するはずですが、おそらくこれはどこかでキャッチされます。

解決策#1-マニフェスト.mfファイルを編集し、このチュートリアルに従って必要なすべてのライブラリを追加します。

Class-Path: jar1-name jar2-name directory-name/jar3-name

解決策#2--jarオプションを使用してアプリケーションを起動するのではなく、標準的な方法を使用します。

java -cp yourLib.jar;database-driver.jar your.application.Main

(すべてのライブラリエントリには、正しい相対または絶対ファイルパスを指定する必要があります)

于 2010-07-13T18:28:08.323 に答える