- - PR -
JARにJDBCの埋め込み方
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-06-29 09:35
JAVAというより、Eclipseの使い方なのかも知れませんが解らないのです。
JDBCを使いデータベースにアクセスするプログラムを作ったのですが、 Eclipse上では動くのに、Windows上では動かないのです。 原因はEclipse上ではJDK内のJDBCの入っているJREでプログラムを起動し、 Windows上ではJDBCの入っていないJREで起動させている為だと解りました。 (WindowsのJREにJDBCをコピーしたら起動したため) 問題はここからで、このプログラムはJDBCが入っているか入っていないか 解らないパソコンで使う事が多そうなのです。 そのために、JARにエクスポートする時にJDBCのみを一緒にして、 JDBCの入っていないパソコンでも使えるようにしたいのです。 自分でも色々試してみましたが、ビルドパスの構築などはEclipse上での関係ぽいし、 エクスポートする時のファイルの選択欄に幾らやっても表示されないのです。 万策つきた状態なので、可能か不可能だけでも良いので教えて貰えないでしょうか。 | ||||
|
投稿日時: 2007-06-29 10:30
Eclipseの操作は知らないですが、可能なはずです。
| ||||
|
投稿日時: 2007-06-29 10:41
いったんJDBCのjarファイルを展開(jar xf)して、それをインポートすればよいと思います。
でも、普通はJDBCのjarファイルも一緒に配布するもんですよ? | ||||
|
投稿日時: 2007-06-29 10:48
jarファイルは単なるzip圧縮なので、拡張子をzipに変えて解凍してみましょう。
回答したフォルダの中にJDBCのライブラリは存在しませんよね? これが、「Windows上では動かない」理由です。 Windows上でも、コマンドプロンプトを立ち上げてそこからjavaコマンドで classpathを指定して該当のjarファイルを起動すると動くはずです。 Eclipseは起動時にビルドパスで指定された外部のjarファイルに classpathを設定して起動をかけてくれるのでEclipse上からだと動くのです。 この問題はわりと古くから知られていますが、クライアントアプリケーションとしての javaがそれほど活用されていないこともあり、あまり話題に上がりませんね。 この問題に対する解決をP. Simon Tuffs氏が提唱しています。 http://www-06.ibm.com/jp/developerworks/java/041217/j_j-onejar.html そのまま利用するではなくとも、参考にはなるでしょう。 また、お勧めが出来ない方法ではありますが、javaのextフォルダを利用する手法もあります。 実行用ランタイムのインストールフォルダ以下のlib/extというフォルダですが、 ここに置かれたjarファイルは該当JREが起動した際に自動的にclasspathが通されます。 ただし、これは非常手段だと思ってください。常用してはいけません。 | ||||
|
投稿日時: 2007-06-29 11:30
Executableなjarファイルは、manifestファイルで実行時のclasspathを指定することができます。
のようなmainfestをjarファイルに含め、メインのjarファイルとJDBCドライバのjarファイルを一緒にZipなどで固めて配布すればよいと思います。 なお、Class-Pathは実行するjarファイルからの相対パスで記述します。(jarファイル内のパスではありません。) # もちろんJDBCドライバが再配布可能なライセンスであることが前提ですが | ||||
|
投稿日時: 2007-06-29 12:46
インギさん
カーニーさん Nagiseさん sawatさん 返答、どうもありがとうございました。 JAVAを勉強し始めて1週間くらいなので、マニフェストファイルの存在は 入門書には書いてあったのですが、どんな物かまでは知りませんでした。 また、ONE−JARの考え方もとても共感が出来、むずかしそうですがチャレンジ したいものです。 まずはJDBCドライバが再配布可能かどうかから調べてみたいと思います。 どうもみなさん ありがとうございました。 |
1