Solaris上でのMySQLのJDBCでjarファイルを構築します
-
19-09-2019 - |
質問
イムは、MySQLに接続するためにJDBCを使用するJavaアプリケーションを構築します。私は1つの実行可能jarファイルにlog4jの、JUnitの、libshout-JavaとMySQLのJDBCドライバと一緒に、私のコードをコンパイルし、それをパッケージ化Antスクリプトを持っています。これは、すべてのUbuntu 9.10上で正常に動作し、私のコードは、MySQLに接続し、離れて私達は行く。
しかし、私の生産ENVは、Solarisになります(私のdevのボックスがUbuntuのです)、私はそこにこれをビルドして実行するために来たとき、私は次のエラーを持っています。
17 [main] DEBUG com.radiobusi.ShoutGen.ParseConfig - [SQL, SELECT * FROM RadioBusi.RadioBusi_song JOIN RadioBusi.RadioBusi_playlist WHERE RadioBusi_playlist.Name = 'Placebo 2';]
18 [main] DEBUG com.radiobusi.ShoutGen.ParseConfig - this is able to be broken up[SQL, SELECT * FROM RadioBusi.RadioBusi_song JOIN RadioBusi.RadioBusi_playlist WHERE RadioBusi_playlist.Name = 'Placebo 2';]
78 [main] ERROR com.radiobusi.ShoutGen - An error occured instantiating the class ShoutGen
java.lang.ExceptionInInitializerError
at com.mysql.jdbc.Util.stackTraceToString(Util.java:351)
at com.mysql.jdbc.Util.<clinit>(Util.java:116)
at com.mysql.jdbc.NonRegisteringDriver.parseURL(NonRegisteringDriver.java:672)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:277)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.radiobusi.ShoutGen.PlayList.<init>(Unknown Source)
at com.radiobusi.ShoutGen.ShoutGen.<init>(Unknown Source)
at com.radiobusi.ShoutGen.ShoutGen.main(Unknown Source)
Caused by: java.lang.RuntimeException: Can't load resource bundle due to underlying exception java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale en_AU
at com.mysql.jdbc.Messages.<clinit>(Messages.java:60)
... 9 more
Caused by: java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale en_AU
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:715)
at com.mysql.jdbc.Messages.<clinit>(Messages.java:58)
... 9 more
Exception in thread "main" java.lang.NullPointerException
at com.radiobusi.ShoutGen.ShoutGen.main(Unknown Source)
私のMySQLデータベースのロケールは、Solaris上でen_USですが、私のUbuntuのmysqlデータベースもen_USです。
誰もが任意のアイデアを得たの?
他のイムないように注意してくださいどのような情報が必要とされているので、あなたはより多くの情報をご希望の場合は、ちょうど私がコメントで知らせます。
パッケージを取得ジャー
junit-4.8.1.jar
libshout.jar
log4j-1.2.15.jar
mysql-5.1.6.jar
munderwo@opensolaris:~/ShoutGen-Java$ uname -a
SunOS opensolaris 5.11 snv_111b i86pc i386 i86pc Solaris
MySQLのバージョン:MySQLの5.1.30
乾杯
マーク
解決 2
私は、この驚き、驚き、ユーザー・エラーの理由を考えます
私は自分のソースコードに私のlibディレクトリからすべてのMySQL JDBCを削除し、その後のJavaのlibに/内線でOpenSolarisの(それは太陽のスタジオから来たように見えます)に付属のMySQL JDBCコネクタを置きます。私はこれをしなかったら、すべてが動作するように見えました。精密検査では、私は、私はまだ私のクラスパスにし、非常に可能性のクロスプラットフォームジャーの前にUbuntuのMySQL JDBCドライバを持っていたかもしれないと思います。だから私は、これが問題だったと思われる。
すべてのあなたの助けをありがとう!
マークます。
他のヒント
エラーが言います:
Can't find bundle for base name com.mysql.jdbc..., locale en_AU
それは、現在あなたがオーストラリアのロケールで実行されているようですので、
私は、あなたが最初はen_USにロケールを切り替えてみてください、それが動作するかどうかを試すべきだと思います。
[EDIT]また作ってください、あなたのMySQLコネクタ/ドライバが格納されているパスに無効な文字が含まれていないことを確認してください。このリンクを参照してください。