- - PR -
Solaris環境でのjdbc
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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」が未チェックのためチェックを付加 この手順で追加しています |
|
投稿日時: 2008-09-25 17:00
.classpath は Eclipse の設定ファイルです。Solaris 上でも Eclipse を使うわけじゃないのですよね?
それなら.classpathファイルをSolarisに持っていっても無意味です。 通常、クラスパスは java コマンドの -classpath オプションで指定します。 (クラスパスはかなり長くなることが多いので、起動コマンドをシェル等にしておくとよいです。) |
|
投稿日時: 2008-09-25 17:38
上記コマンドを実行するユーザに環境変数CLASSPATHで指定。
でどうでしょう。 標準シェルが何で動いているかわかりませんが、 bashで動いているんであれば、~/.bash_profile等に記載しておけば、 ログイン時に読み込まれます。 [ メッセージ編集済み 編集者: ゆっぽ 編集日時 2008-09-25 17:44 ] |
|
投稿日時: 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