PostgreSQL に接続する restlet Web サービスを起動しています。Netbeans からは正常に動作します。すべての外部jarを含むjarファイルとlibディレクトリをランダムな場所に移動し、コマンドラインから起動しました。正常に動作します。
問題は、これらのファイルを他のマシンに移動して、そこから jar を起動するときです。で受け取りjava.lang.NoClassDefFoundError: org.postgresql.Driver
ますClass.forName()
。
私はマニフェストを調べました: Class-Path: ... lib/postgresql.jdbc.jar ... 大丈夫そうです。/libのjdbcファイルを使用してテストしたため、そうであるはずです(ClassNotFoundは、libディレクトリで検索していることを意味します)
それでは、すべてが整っていて、正しいマニフェストとすべてのjarを持っているのに、なぜ彼は他のマシン(Debian)でクラス定義を見つけることができないのでしょうか?
================================================== ================================
minecraftサーバーを起動し、エラーが発生した理由を読んでいるときに解決策を見つけました。
問題は Java でした。Debian には、1.5 と 1.7 の 2 つのバージョンの Java があります。デフォルトでは、すべてのコマンドが 1.5 で実行され、1.7 から jar を起動すると、すべてが正常に機能します。