- PR -

Solaris環境でのjdbc

1
投稿者投稿内容
緑の
会議室デビュー日: 2006/04/04
投稿数: 13
投稿日時: 2008-09-25 16:32
お世話になります、windows環境で作成したjavaをsolaris環境へ移動したときに
うまく動作しないため質問致します
−−
開発環境
windowsXP + Eclipse

プロジェクト名:PGXXXX
プログラム内容:デフォルトパッケージにPgxxxx0010.javaをmainとし、プロジェクト内に複数のパッケージフォルダを抱える。
処理内容はDBの検索とテキストリード/ライト
−−

Eclipse上の実行ではDBの読込からテキストのリードライトまで正常に動作する。
Eclipse上でエクスポートを行いjarファイル(PGXXXX.jar)を生成し、実記環境のsolarisサーバにバイナリでFTPを行い転送。
solaris上で「java -cp PGXXXX.jar Pgxxxx0010」と実行したところ下記エラー発生
Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at Pgxxxx0010.getoptionflg(Pgxxxx0010.java:338)
at Pgxxxx0010.main(Pgxxxx0010.java:150)

「ojdbc14.jar」が正しく認識できていないと思い、PGXXXX.jarをzipにし内容を展開。
「ojdbc14.jar」は展開した時にPgxxxx0010.classと同じTOPフォルダに入っている
「.classpath」の内容を展開すると下記の内容
−−−
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry exported="true" sourcepath="ojdbc14.jar" kind="lib" path="C:/oracle/product/10.2.0/client_1/jdbc/lib/ojdbc14.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
</classpath>
−−−

知りたいこと1
「.classpath」より「ojdbc14.jar」がsolarisでは認識出来ていないpathを指定されているためにsolaris上では正しく実行が出来ていない、であってますか?

知りたいこと2
windowsXPでのEclipse上でSolarisでも認識できるようにするにはどのようにすればいいでしょうか?
→今回の追加は
1.プロジェクトを右クリック
2.javaのビルド・パスのライブラリーを開く
3.外部JARの追加、を選択
4.「C:/oracle/product/10.2.0/client_1/jdbc/lib/ojdbc14.jar」を選択し開くで追加
5.次にjavaのビルド・パスの順次およびエクスポートタブを開く
6.「ojdbc14.jar-C:/oracle/product/10.2.0/client_1/jdbc/lib/ojdbc14.jar」が未チェックのためチェックを付加
この手順で追加しています

sawat
大ベテラン
会議室デビュー日: 2006/08/02
投稿数: 112
投稿日時: 2008-09-25 17:00
.classpath は Eclipse の設定ファイルです。Solaris 上でも Eclipse を使うわけじゃないのですよね?
それなら.classpathファイルをSolarisに持っていっても無意味です。
通常、クラスパスは java コマンドの -classpath オプションで指定します。
(クラスパスはかなり長くなることが多いので、起動コマンドをシェル等にしておくとよいです。)
ゆっぽ
常連さん
会議室デビュー日: 2006/02/15
投稿数: 40
投稿日時: 2008-09-25 17:38
上記コマンドを実行するユーザに環境変数CLASSPATHで指定。
でどうでしょう。

標準シェルが何で動いているかわかりませんが、
bashで動いているんであれば、~/.bash_profile等に記載しておけば、
ログイン時に読み込まれます。



[ メッセージ編集済み 編集者: ゆっぽ 編集日時 2008-09-25 17:44 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-09-25 18:08
jarを作るときに、参照するjarがどこにいるかを、
マニフェストに明示的に指定することができます。

http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/jar/jar.html
ここにClass-Pathの説明が書かれています。
生成されるjarから参照するjarファイルの相対パスを書けばOKです。

ついでにMain-Classエントリも書いておきましょう。
java -jar xxx.jarだけで起動できますよ。
1

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