• ベストアンサー

JavaからOracleを呼ぶ。(JDBCドライバの利用方法)

色々調べましたが分からないので質問させてください。よろしくお願いします。 JavaからOracleを使いたくて、JDBCドライバのことを調べています。 Oracle(のClient)がインストールされた私のパソコン ↓ D:\oracle\ora92\jdbc\lib\classes12.zip\oracle\jdbc\driver\OracleDriver.class まず、コマンドプロンプトにてクラスパスを通しました。 C:\java > set CLASSPATH = D:\oracle\ora92\jdbc\lib\classes12.zip (↑CのjavaフォルダにSqlTest.javaを作成しています。) コンパイルは成功しましたが、実行はできません(;_;) java.lang.ClassNoClassDefFoundError: SqlTest というエラーです。 詳しい方、どうかご教授よろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • dora7075
  • ベストアンサー率39% (103/261)
回答No.1

SqlTest.classにクラスパスが張られていないからです。 そのクラスがあるフォルダーにクラスパスを張ってください。

Novi21
質問者

お礼

的確なアドバイスをありがとうございました! ネットで丸一日ほど調べたのですが分からず、 dora7075さんの2行で救われました。 色々調べた説明には、パッケージのクラスパスを通せとあり、 私はまだパッケージを利用したことが無かったので良くわかりませんでした。 フォルダーと書いて下さったことで、やっと出来ました。 C:\java > set CLASSPATH = D:\oracle\ora92\jdbc\lib\classes12.zip ; C:\java で、出来ました!ありがとうございました!!!

その他の回答 (1)

回答No.2

> D:\oracle\ora92\jdbc\lib\classes12.zip\oracle\jdbc\driver\OracleDriver.class これはどういう意味なのだろう? classes12.zipというディレクトリにclasses12.zipを展開したということかな? こういう場合はわざわざ展開しなくてもclasses12.zipをクラスパスに含めれば通るはず。 その際はjarに拡張子を変更することが最近の風潮みたいだ。 で、肝心の部分だが、そもそもSqlTestのパッケージはどうなっているのだろう? デフォルトパッケージであるならば、C:/javaディレクトリをクラスパスに含めれば解決するが、 何らかのパッケージに含まれるのであればディレクトリをつくりSqlTestを格納しトップディレクトリにクラスパスを通す必要がある。 で、ここで問題なのだが、 >↑CのjavaフォルダにSqlTest.javaを作成しています。 javaファイルを配置するしたと書いているが、javaファイルでは実行できない。 念のため聞くが、コンパイルはしているか? コンパイルは正常に終了したのか? クラスファイルはどこに配置している? いろいろ問題はありそう・・・ いちど参考書を見てもう一度学習してみたほうがいい。

Novi21
質問者

お礼

はじめまして。お忙しい中、回答くださってありがとうございました! パッケージに含まれていないクラスも、クラスパスが必要だったのですね。 ありがとうごじあました!

関連するQ&A

  • Oracle8i に接続しようと思うんですが、エラーが出ます。

    Oracle 8i に接続したいと思い、 C:\Oracle\Ora81\jdbc\lib に classes12.zip を置いています。 クラスパスの設定は、C:\Oracle\Ora81\jdbc\lib\classes12.zip としています。classes12 は oracle 9i 用を使っています。 ちなみに、OSはWin2000professional です。 // JDBC ドライバの登録 DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver() ); とすると、 Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jdbc/driver/Or acleDriver at DbTest.main(DbTest.java:16) のエラーが出て、 Class.forName("oracle.jdbc.driver.OracleDriver");  とすると、 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at DbTest.main(DbTest.java:19) というエラーが出ます。 誰かわかる人がいたら、教えてください.よろしくお願いします。

    • ベストアンサー
    • Java
  • JavaでのOracle接続について(JDBC)

    はじめまして。 先週よりJavaの勉強を始めていまして 先日からDB接続(Oracle)をやっているのですが、Oracleに接続することが出来ません。色々なサイトからクラスパスが通っていないというエラーのようなのですが、プログラミング経験のある友人に聞いてもさっぱり原因が分かりません。また何度もインストールをやり直して同じです。以下に環境とソースを載せておきますので、もし何か解決のヒントになるような事がありましたら教えて下さい。 ●状況 (1)コンパイルは通るがjavaコマンドで実行をすると”Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driveOracleDriver”が出てしまう。 (2)C:\oracle\ora92\jdbc\lib\ojdbc14.jarを環境変数→Pathへしっかりと通してあります。(setコマンドでも確認済みです) (3)C:\j2sdk1.4.1_02\jre\lib\extへojdbc14.jarをコピー (4)SQL PLUSからは接続出来る。 ●環境 クライアント:Win2000 DBサーバー:SQLサーバー(別マシンに環境構築) DB:Oralce9.2.0 JDK:1.4.1_02 import java.sql.*; class Employee { public static void main (String args []) throws SQLException,ClassNotFoundException { // Oracle JDBC Driverのロード Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@ホスト名:1521:SID", "ID", "パスワード"); Statement stmt = conn.createStatement (); ResultSet rset = stmt.executeQuery ("SQL"); while (rset.next ()) System.out.println (rset.getString ("ISBN")); rset.close(); conn.close(); } } 以上です。何か足りない情報がありましたら教えて下さい。

  • oracle9iにJDBC接続が出来ない

    oracle9iにJDBCで接続したいのですがI/O例外が出てうまくいきません。 多分、DriverManager.getConnection の引数のURLが間違っているのだと思うのですが。 jdbc:oracle:thin:@<ホスト名>:<リスナのポート番号>:<Oracle SID> ホスト名・ポート番号・Oracle SID はどこを見ればわかるのでしょうか? ちなみに出ているエラーは以下のとうりです。 Exception in thread "main" java.sql.SQLException: I/O例外です。: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:222) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:335) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:361) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:442) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:321) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at JavaDataAccess01.main(JavaDataAccess01.java:13) 何か参考になるHPなどあれば教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 使用すべきOracle8i用JDBCドライバのバージョンについて

    下記の構成でTomcatからデータソースを利用して DBにJDBC接続しようと思っています。 【OS】 WindowsXP 【JDK】 1.4.15 【アプリケーションサーバ】 Tomcat4.1.36 【データベース】 Oracle8.1.5 Oracleインストール後、%ORACLE_HOME%/jdbc\lib/以下のフォルダには 下記のJDBCドライバしかありませんでした。 classes102.zip (JDK 1.0.2 用) classes111.zip (JDK 1.1.x 用) また下記のURLよりOracle JDBC Driver 8.1.5のJDBCドライバをダウンロードしようと試みました。 http://otn.oracle.co.jp/software/tech/java/jdbc/index.html ところが、Oracle8iについては8.1.7のJDBCドライバのみ公開しており、 その内容を見ても下記のJDBCドライバしかありませんでした。 classes111.zip(JDK 1.1.x 用) classes12.zip(JDK 1.2.x 用) 今回の私の環境では、どこからどのバージョンのJDBCドライバを入手して 使用すればいいのでしょうか? ご教授よろしくお願いします。

    • ベストアンサー
    • Java
  • JDBCドライバについて

    JavaからアクセスしたいのでJDBCドライバをインストール、設定しようとしたのですが、Tomcatに組み込むやり方がわかりません。このサイトを参考にしてやったのですが・・・ << db105.java >> データベース(0):JDBCドライバ JavaのプログラムからMySQLのデータベースへ接続するにはJDBCドライバが必要である。 ●JDBCドライバのダウンロードとインストール (1)Webブラウザで、http://www.mysql.com/downloads/に接続する。 ダウンロードするバージョン(MySQL Connector/J 3.0)をクリックする。 (2)http://dev.mysql.com/downloads/connector/j/3.0.htmlに切り替わる。Downloadをクリックする。 (3)ダウンロードが始まるので、保存先をデスクトップにする。ファイル(mysql-connector-java-3.0.15-ga.zip)がデスクトップに保存される。 (4)ZIP形式のファイル(mysql-connector-java-3.0.15-ga.zip)を解凍する。デスクトップ上のディレクトリ(mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga)内のファイル(mysql-connector-java-3.0.15-ga-bin.jar)にJDBCドライバが存在する。 (5)JDBCドライバを環境変数CLASSPATHに追加する。 SET CLASSPATH=%CLASSPATH%;c:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jar;. ただし、JDBCドライバは、 c:\mysql-connector-java-3.0.15-ga\mysql-connector-java-3.0.15-ga-bin.jarに存在する。 ●Tomcatに組み込む。 ファイル(mysql-connector-java-3.0.15-ga-bin.jar)を %CATALINA%\shared\libの下にコピーする。その後、再起動する。 2番目の黒丸の%CATALINA%\shared\libが全くみつからないです。教えてください~;;

    • ベストアンサー
    • MySQL
  • DBサーバ上でjdbcによるアクセス方法について

    Oracle JDBC Driverのロードを以下のように行おうとしました。 import java.sql.*; class JavaDataAccess01 { public static void main (String args[]) throws SQLException, ClassNotFoundException { // Oracle JDBC Driverのロード Class.forName("oracle.jdbc.driver.OracleDriver"); // Oracle10gに接続 Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:ORCL", "test", "test"); // ステートメントを作成 Statement stmt = conn.createStatement(); // 問合せの実行 ResultSet rset = stmt.executeQuery("select brand_id,value from brand"); // 問合せ結果の表示 while ( rset.next() ) { // 列番号による指定 System.out.println(rset.getInt(1) + "\t" + rset.getString(2)); } // 結果セットをクローズ rset.close(); // ステートメントをクローズ stmt.close(); // 接続をクローズ conn.close(); } } コンパイル後実行すると以下のように例外がでます。 Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver. OracleDriver at java.net.URLClassLoader$1.run(URLClassLoader.java:199) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:187) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at JavaDataAccess01.main(JavaDataAccess01.java:11) ちなみにコンパイルして作成したクラスファイルはJavaDataAccess01です。使用しているDBはoracle10gです。環境設定もCLASSPATHにD:\oracle\product\10.2.0\db_1\jdbc\lib\classes12.zipを追加しているのですがどうにもうまくいきません。どなたか解決方法がわかる方、ご教授お願いします。

  • javaでのORACLEへの接続

    javaでのORACLEへの接続方法を教えてください javaの初心者なのですが、JAVAでのORACLEへの接続方法がよくわかりません。 解説書のORACLEへの接続へのクラスファイルを実行してみましたがエラーとなって しまいます。(コンパイルは通ります)ちなみにクラスファイルの中身は... import java.sql.*; /* 省略 */ Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@hostname:1521:ORA817"; /* 省略 */ Connection conn = DriverManager.getConnection(url, user, password); /* 以下省略 */ この中でJDBCドライバのURLの@hostnameの部分にサーバーのIP(202.15....) ORA817の部分にデータベース名を入れ、ユーザ-、パスワードも実在するものにしてあります。Class.forNameの部分は変える必要があるのでしょうか?ファイルの場所は"C:\A116"です。ちなみにエラーメッセージは... C:\A116>java GetConnectionDemo java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at GetConnectionDemo.main(GetConnectionDemo.java:6) ORACLEサーバ WINDOWS2000 ORACLE 8.1.6i です。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • ORACLEに接続できない

    お世話になります。 JAVAでoracleに接続しようとしているのですが cmdからの接続はできたのですが tomcatでの接続が行えません。 oracle 9i Tomcat 5.5 エラー内容は java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver です。 接続するコードは以下のようです。 String drv = "oracle.jdbc.OracleDriver"; String dsn = "jdbc:oracle:thin:@localhost:1521:SID"; その他補足も致しますので、 ご教授宜しくお願い致します。 また、上記コードを使用した別のコードで行ったところ CMDでの接続はできましたので classPathは通っているとおもうのですが…

    • ベストアンサー
    • Java
  • tomcatからのoracle接続エラーについて

    お世話になります。 javaサーブレットからoracleに接続する際、以下のエラーが発生して困っております。 エラー:java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver 解決するための情報を頂けますでしょうか。 私がテストしている環境は、以下となります。 【Webサーバ】 centOS5.5. jdk1.6 tomcat5.5 【DBサーバ】 centOS5.5. oracle11g r2 jdbcドライバーは、ojdbc6.jarを使用しております。 ドライバーは、Webサーバの /WEB-INF/libと$TOMCAT_HOME/common/lib配下に設置しております。 環境変数クラスパスに$TOMCAT_HOME/common/libが、設定されていることも確認しております。 JDBCドライバについては、以下の3パターンで試してみましたがすべて同じエラーとなりました。  ・オラクルインストール時のもの(DBサーバ)  ・オラクルHPの11g r2(11.2.0.1)のもの  ・オラクルHPの11g r2(11.2.0.2)のもの どのJDBCドライバを配置した時も、cataline.outには、 oracle.jdbc.OracleDriverクラスが、追加できたというログが出力されておりました。 尚、同じWebサーバでpostgresqlに接続するjavaサーブレットは、/WEB-INF/lib 配下にJDBCドライバーを配置しているだけで問題なく動作しております。 お手数お掛け致しますが、ご教授宜しくお願い致します。

    • ベストアンサー
    • Java
  • oracleへの接続

    Java初心者です。oracleについて勉強しているのですが なかなかうまくいきません。 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection connection=DriverManager.getConnection("jdbc:oracle:thin:@dbserver:1521:oracle","test","test"); jdbc:oracle:thin:@(ホスト名):(ポート番号): (接続するデータベースのSID)   ↑   ↑ この接続するデータベースのSIDとはどういう意味なの でしょうか? もしかしたら追加質問をするかもしれないので よろしくお願いします。

専門家に質問してみよう