- PR -

jarファイル実行時のDB接続エラー

1
投稿者投稿内容
kiyoharu
常連さん
会議室デビュー日: 2005/08/06
投稿数: 25
お住まい・勤務地: 神奈川県鎌倉市
投稿日時: 2006-01-09 01:13
お世話になります。
JDBCドライバーを使い、DBに接続してDB名をカタログ取得する
アプリケーションを作成しています。
完成したプログラムをEclipse上で実行した場合は問題なく動作
するのですが、jarファイルを作成して実行してみるとDBの接続時に
エラーとなります。
JDBCのjarファイルはEclipse上でクラスパスを登録しており、
jarファイル作成時にもclassファイルだけでなく、JDBCのjarファイル
も指定して取り込んでみましたが結果は同じでした。

JDBCドライバを含んだアプリケーションをjarファイルにする正しい方法など
わかる方がいらっしゃいましたらご教授頂けます様、よろしくお願いいたします。

【環境】
 java version:1.5.0_06
 JRE :1.5.0_06
 DB :SQLserver2000


せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-01-09 01:41
エラーの詳細な内容を教えてもらえないでしょうか。
可能であれば、メッセージをそのままこちらに貼付けてもらえるのが、
他人にとっては、一番理解が早いと思います。
kiyoharu
常連さん
会議室デビュー日: 2005/08/06
投稿数: 25
お住まい・勤務地: 神奈川県鎌倉市
投稿日時: 2006-01-09 02:41
せん様、夜分にありがとうございます。
エラーの内容の件ですが、接続を失敗した際には try〜catch により
接続不良のエラーメッセージダイアログを表示するというロジック
としてあり、jarファイルを実行した際には「接続エラー」の
メッセージダイアログが出るような状況です。
(Eclipseにて実行した場合には「Successful!」のメッセージダイアログ
 がきちんと表示されます。)
下記は該当のロジック部分です。
-------------------------------------------------------------------------
try{
  Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
  con=DriverManager.getConnection(Url,userName,password);
   if(con!=null) {JOptionPane.showMessageDialog
   (null, "Successful!", "title",JOptionPane.INFORMATION_MESSAGE);
   }
  }catch(Exception e){
   e.printStackTrace();
   JOptionPane.showMessageDialog
   (null,"接続エラー", "Error!",JOptionPane.INFORMATION_MESSAGE);
}
-------------------------------------------------------------------------

何かわかることがありましたら、お願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2006-01-09 04:05
>   e.printStackTrace();
ここで例外のスタックトレースが記録されると思いますのでこちらの内容を確認しましょう。
ClassNotFoundException ならドライバがクラスパスに通っていない、とか判断できます。
kiyoharu
常連さん
会議室デビュー日: 2005/08/06
投稿数: 25
お住まい・勤務地: 神奈川県鎌倉市
投稿日時: 2006-01-09 13:51
インギ様、ご回答ありがとうございます。

教えていただきました「e.printStackTrace()」
から、エラー内容をメッセージダイアログに表示するつくりにプログラムを直しjarファイルを実行したところ、
ご推察のとおり
「java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver」
のエラーが確認できました。
そのため、MSのJDBCの情報ページを参考に環境変数にクラスパスを再度設定し直して
みましたが、やはりエラーが解消されませんでした。
(一応、ユーザ環境変数とシステム環境変数の両方にJDBCのjarファイルパスを登録してみたのですが。。)

何か他に設定などが必要なところなどあるのでしょうか?
kiyoharu
常連さん
会議室デビュー日: 2005/08/06
投稿数: 25
お住まい・勤務地: 神奈川県鎌倉市
投稿日時: 2006-01-09 20:55
おせわになります。
自己レスです。
問題の件ですが manifestファイルにメインクラスファイル名の他に
クラスパスを下記のように追記し、jarファイル化することでDBに
接続が出来るようになりました。
----------------------------------------------------------------
Main-Class: MainClassFileName
Class-Path: msbase.jar mssqlserver.jar msutil.jar

----------------------------------------------------------------

せん様、インギ様、ありがとうございました。
お騒がせいたしました。
1

スキルアップ/キャリアアップ(JOB@IT)