前提・実現したいこと
スッキリわかるJava入門実践編の12章にて、外部jarファイルであるH2Databaseを用いたデータベースアクセスを行いたいのですが、eclipse以外の環境でもjarファイルにクラスパスを通す方法が分からずに困っております。
eclipse上での実行は一応https://para-pore.com/eclipse-h2database/
を参考にして出来ております。
発生している問題・エラーメッセージ
通常のWindowsのpowershell環境で実行しています
h2-1.4.200.jarは実行ファイル(java12_1.java)と同じフォルダ内(C:\java\test)に配置しています
PS C:\java\test> javac java12_1.java PS C:\java\test> java java12_1 -cp h2-1.4.200.jar java.lang.ClassNotFoundException: org.h2.Driver at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:340) at java12_1.main(java12_1.java:9) java.sql.SQLException: No suitable driver found for jdbc:h2:~/rpgdb at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251) at java12_1.main(java12_1.java:17)
該当のソースコード
Java
1import java.sql.*; /* java.sqlをインポートしておく */ 2public class java12_1 { 3 public static void main(String[] args) { 4 5 // ********** リスト12-1ここから(import文は上記) ********** 6 // STEP 0: 事前準備(JAR配置を含む) 7 try { 8 9 Class.forName("org.h2.Driver"); 10 } catch(ClassNotFoundException e) { 11 e.printStackTrace(); /* ドライバJARが見つからない場合の処理(*)*/ 12 } 13 /* : */ 14 Connection con = null; 15 try { 16 // STEP 1: データベースの接続 17 con = DriverManager.getConnection("jdbc:h2:~/rpgdb"); /* JDBC URLを指定 */ 18 // STEP 2: 送信処理 19 /* ******************************* 20 メインのDB操作処理(後述します) 21 ****************************** */ 22 } catch(SQLException e) { 23 e.printStackTrace(); /* 接続やSQL処理の失敗時の処理(*)*/ 24 } finally { 25 // STEP 3: データベース接続の切断 26 if(con != null) { 27 try { con.close(); } catch(SQLException e) { 28 e.printStackTrace(); /* 切断失敗時の処理(*)*/ 29 } 30 } /* *の箇所は必要に応じて適切なエラー処理を記述します */ 31 } 32 // ********** リスト12-1ここまで ********** 33 34 } 35}
試したこと
-cpコマンドを適用するタイミングを変えたりh2-1.4.200.jarの配置場所を変えて絶対パス指定で実行したり
補足情報(FW/ツールのバージョンなど)
Java, Javacのバーションは以下の通りです
PS C:\java\test> java -version
openjdk version "14.0.2" 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-46)
OpenJDK 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)
PS C:\java\test> javac -version
javac 14.0.2
あなたの回答
tips
プレビュー