質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

4699閲覧

h2 databaseへの接続でClassNotFoundExceptionが起きる

KoheiOO

総合スコア13

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2019/04/18 04:19

編集2019/04/18 04:23

前提・実現したいこと

Java初心者です。「スッキリわかるサーブレット&JSP入門」を使って勉強をしています。
JDBCプログラムにて、H2 databaseへ接続を試みると、下記のエラーが発生します。
見本と何度も見比べてみましたが間違いがわかりません、自分なりに調べてみましたが解決方法がわからず質問させていただきました。
WEB-INF/libへ「jtsl-api-1.2.jar」「jtsl-impl-1.2.jar」のファイルも入れています。

発生している問題・エラーメッセージ

java.lang.ClassNotFoundException: org.h2.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:195)
at jdbc.SelectEmployeeSample.main(SelectEmployeeSample.java:13)

該当のソースコード

Java

1package jdbc; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8 9public class SelectEmployeeSample { 10 public static void main(String[] args){ 11 Connection conn = null; 12 try { 13 Class.forName("org.h2.Driver"); 14 15 conn = DriverManager.getConnection( 16 "jdbc:h2:file:c:/Users/ユーザー名/H2/example","sa",""); 17 18 String sql = "SELECT ID,NAME,AGE FROM EMPLOYEE"; 19 PreparedStatement pStmt = conn.prepareStatement(sql); 20 21 ResultSet rs = pStmt.executeQuery(); 22 23 while(rs.next()) { 24 25 String id = rs.getString("ID"); 26 String name = rs.getString("NAME"); 27 int age = rs.getInt("AGE"); 28 29 System.out.println("ID:" + id); 30 System.out.println("名前:"+ name); 31 System.out.println("年齢:"+ age + "\n"); 32 } 33 34 }catch(SQLException e) { 35 e.printStackTrace(); 36 }catch(ClassNotFoundException e) { 37 e.printStackTrace(); 38 }finally{ 39 if(conn != null) { 40 try { 41 conn.close(); 42 }catch(SQLException e) { 43 e.printStackTrace(); 44 } 45 } 46 } 47 48 } 49 50}

試したこと

libフォルダへの貼り付け直しなど

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

WEB-INF/lib 以下のファイル一覧はどうなっていますか?
h2ドライバのjarファイルがないとクラスが見つかりません。

参考: https://qiita.com/cappyzawa/items/4ea376e9187f19bd6f59#%E5%B0%8E%E5%85%A5

投稿2019/04/18 04:43

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoheiOO

2019/04/18 04:47

ありがとうございます。参考書を見ながらh2の公式よりダウンロードした「jtsl-api-1.2.jar」「jtsl-impl-1.2.jar」のファイルをWEB-INF/libの中に貼り付けています。
mather

2019/04/18 05:09

そちらのファイルではないと思います。 h2-1.4.199.jar のようなファイル名のはずです。
mather

2019/04/18 05:13

同じ本を持っていないのでどういう意図と手順で jtsl-api を使っているのかわかりませんが、少なくともH2データベースとは無関係かと思います。
KoheiOO

2019/04/18 05:28

ありがとうございます!私の読み間違いで別のファイルを貼り付けていたようでした・・・ 確かにh2-1.4.199.jarというファイルがあり、それを貼り付けて解決しました、本当にありがとうございます。
guest

0

これと同じではないですか?
h2 databaseを使おうとするとClassNotFoundExceptionが起きる【解決済】

上記の回答からは読み取れませんが、下記の回答が該当するかも。
javaライブラリのClass.forName(clsName)に入れるclsNameのクラスパスを通すには?【解決済】

投稿2019/04/18 04:34

編集2019/04/18 04:52
dsuzuki

総合スコア1682

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoheiOO

2019/04/18 04:41

ありがとうございます、同じかと思います。失礼しました。 こちらの回答で、「指定したクラスパスの後ろにセミコロンをつけたら」と自己解決されているのですが、どこのことを言っているのでしょうか・・・
dsuzuki

2019/04/18 04:52

これかな?と言う情報を追加しました。
KoheiOO

2019/04/18 05:14

ありがとうございます。読ませてもらったのですが、恥ずかしながら内容がよくわかりませんでした・・・ 自分はEclipseでしているのですが、コマンドを使った話をしているようでした、考え方は同じということでしょうか?
dsuzuki

2019/04/18 05:23 編集

環境の問題と思いますが、参考書に環境構築についての記述はありませんか。 matherさんの回答にあるように、jarファイルの設定周りだと思います。
KoheiOO

2019/04/18 05:29

ご回答ありがとうございました、お手数をおかけして申し訳ありません。 matherさんの指摘通り、私の勘違いでした。 ご丁寧にお答えいただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問