はじめまして。
先週より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();
}
}
以上です。何か足りない情報がありましたら教えて下さい。
A 回答 (8件)
- 最新から表示
- 回答順に表示
No.8
- 回答日時:
java、jdb、javac、javah には、-classpath オプションがあります。
-classpath オプションが設定された場合、環境変数のCLASSPATHは無視される様です。
Tomcat5.0を使用している場合、環境変数でなく、以下のレジストリに設定します。
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat5\Parameters\Java内のClasspathに「;」で区切り、.jarファイル名をフルパスで記述します。
No.7
- 回答日時:
環境変数のPathとCLASSPATHをそれぞれ
クリアな状態で
PathにはJavaのパスだけ
CLASSPATHにはojdbc14.jarとJavaのクラスだけで
環境変数を設定しなおしてみてはどうでしょう?
たとえば以下のように環境変数を設定します。
set ORACLE_HOME=D:\oracle\ora92
set JAVA_HOME=C:\j2sdk1.4.2_03
set Path=%JAVA_HOME%\bin
set APP_PATH=C:\work
set CLASSPATH=%ORACLE_HOME%\jdbc\lib\ojdbc14.jar;%APP_PATH%
#ORACLE_HOMEやJAVA_HOMEはそれぞれオラクル、Javaのディレクトリを設定してください。
#APP_PATHはEmployee.classファイルのあるフォルダです。
これで実行してみてはいかがでしょう?。
No.6
- 回答日時:
>Javaファイル自体認識してくれなくなってしまいました
コンパイルしたJavaプログラムのclassファイルの事ですね。
>CLASSPATHという項目は無かったので新しく追加して
なら、CLASSPATHにclassファイルのパスも通しましょう。自ディレクトリなら CLASSPATH=.;C:\oracle\ora92\jdbc\lib\ojdbc14.jar とか。
CLASSPATHには必要なライブラリ(jarやzip)やclassファイルのパスを通します。
>ojdbc14では駄目なようです。
PATHに通しているJavaの実行環境(JRE)は1.4ですか?
あるいは実行時にフルパスで指定してみてください。
(JRE1.4のパス)\bin\java -classpath ..... と。
CLASSPATHにclassファイルのパスを通してみてもNotFoundになってしまいます。
またojdbc14の件ですが、oracleインストール時に
Pathに勝手に書かれるjre1.3.1を先に読んでしまっていたようで、
%JAVA_HOME\bin%をここよりも前に書き直した所ojdbc14.jarでも実行できるようになりました。
まだ勉強を始めたばかりでPCの環境的な事もあまり知らずにお手数をおかけしました。
Javaの開発環境で有名(?)なEclipseにて先日のソースを実行したところ実行出来ました。
特にEclipse上でパスを通した事も無いのですが、
javaコマンドで実行するのとeclipseで実行するのと何が違ってるんだろう・・・・
将来的にはjavaコマンドで実行する事はあまり無くなるのかなとは思いますが、これも大切な勉強なので解決するまでしっかりと続けたいと思います。
No.5
- 回答日時:
JavaのパスはJDK1.4のJavaを指してますか?
Java -version
で確認してみてください。
ojdbc14.jar はファイル名のとおりJDK1.4のクラスファイルです。classes12.zipはJDK1.2や1.3のクラスファイルです。(1.4でも動作してました。)
JavaのBin等の実行ファイルはPATHに、classes12.zipやojdbc14.jarなどは他の方が指摘するようにCLASSPATHに設定します。
Java -version
を試してみた所1.3.1となっていました。
そんなバージョンインストールした記憶が無かったのですが、どうもoracleインストール時のjre1.3.1が設定されてしまっていたようです。
Pathを調べてみると%JAVA_HOME%\binよりもoracleのjreの方が先に記述されていた為、%JAVA_HOME%\binをoracleのjreよりも先に書き直した所、ojdbc14.jarでも実行出来るようになりました。
環境変数自体も今回勉強するにあたってはじめていじった部分だったので、パスの順番も考えないといけないという事も知らずにご迷惑をおかけしました。
ですが、相変わらずclassファイルを認識してくれないというは解消されていないので引き続き色々と調べて試してみたいと思います。
No.4
- 回答日時:
>(2)C:\oracle\ora92\jdbc\lib\ojdbc14.jarを環境変数→Pathへしっかりと通してあります。
(setコマンドでも確認済みです)PATHでは無くCLASSPATHに通しましょう。
あるいは、実行時に java -classpath C:\oracle\ora92\jdbc\lib\ojdbc14.jar としましょう。
CLASSPATHに通したら今度はJavaファイル自体認識してくれなくなってしまいました。
詳しくは下のnaktak様の回答に書いておきました。
実行時にはclasses12.jarを通す事でうまくいきました。
ojdbc14では駄目なようです。
No.1
- 回答日時:
> (2)C:\oracle\ora92\jdbc\lib\ojdbc14.jarを環境変数→Pathへしっかりと通してあります。
(setコマンドでも確認済みです)(2)のパスをシステム環境変数CLASSPATHに登録しましょう。
そしてOSを再起動しましょう。
それが面倒ならコンパイル、実行時に
javac -classpath C:\oracle\ora92\jdbc\lib\ojdbc14.jar; Employee.java
などとしましょう。
実行時にclasses12.jarに通す事でうまくいきました。
ojdbc14.jarでは動きませんでした。
またシステム変数の話ですが、CLASSPATHという項目は無かったので新しく追加してclasses12.jarにパスを通してみましたが、実行時にjavaファイル自体がClassNotFoundになってしまいました。
基本的な質問なのですが、javaのbinやオラクル関係のパス(インストール時にPathに勝手に書かれるもの)はPathでは無くCLASSPATHに通すものなのですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- その他(ソフトウェア) JavaとOracle Javaって何が違うんですか? 1 2022/05/05 05:46
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- 情報処理技術者・Microsoft認定資格 「Oracle Java Gold」 か 「応用情報技術者試験 」だとどちらのほうが転職に役立ちます 2 2022/08/22 08:16
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracle SQL実行時間について
-
SQL実行結果取得
-
pl/sqlでselect文の結果をCSV出...
-
PL/SQLでログを確認したい。
-
batファイルでのSQL(oracle)...
-
SQL*Plusで、コマンドの返答を...
-
JavaでのOracle接続について(J...
-
SQL*Plusで以前に実行したコマ...
-
SQL*PLUSを終了させる方法
-
execute使用した時の、完了メッ...
-
Oracleで流したSQLのログを取得...
-
PL/SQLからshellスクリプ...
-
マテリアライズドビューログに...
-
Oracle audit trail
-
SQLファイル内のSQL実行ログ取得
-
ORA-01013のエラーについて経験...
-
VBScript 実行時エラーについて
-
PL/SQLのコンパイルエラーにつ...
-
ORA-01843: 指定した月が無効で...
-
Oracle DataPumpでの移行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL*Plusで、コマンドの返答を...
-
PL/SQLでログを確認したい。
-
SQL実行結果の出力を見やすくし...
-
Oracleで流したSQLのログを取得...
-
batファイルでのSQL(oracle)...
-
トレースファイルの削除スクリプト
-
SQL*Plus:SPOOLコマンドでのSQ...
-
JavaでのOracle接続について(J...
-
ストアド・プロシージャをバッ...
-
oracle11g listener.logの削除
-
ORA-00984のエラーが出ます
-
ORACLEのエクスポートについて
-
マテリアライズドビューログに...
-
pl/sqlでのautotraceについて
-
Accessからoracleのストアドプ...
-
サービスの再起動を自動で
-
ShellからTruncate【Linux】
-
SPOOL出力先のフォルダにSpace...
-
リスナーログを出力しない設定方法
-
execute使用した時の、完了メッ...
おすすめ情報