web-dev-qa-db-ja.com

なぜorg.h2.Driverを取得できないのですか?私はmavenを使用します

H2への接続について問題が発生しました

これは私のpom.xmlです:

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>.</groupId>
    <artifactId>dbConnection</artifactId>
    <name>Db Connection</name>
    <packaging>war</packaging>
    <version>0.1</version>

    <dependencies>
        <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.3.176</version>
        </dependency>
    </dependencies>


</project>

これは私のメインコードです

import Java.sql.*;

public class DbConnection 
{
   static final String DB_URL = "jdbc:h2:tcp://localhost/~/test;AUTO_SERVER=TRUE";

   public static void main(String[] args) throws Exception
   {
        try
           { 
                Class.forName("org.h2.Driver");          
                Connection conn = DriverManager.getConnection(DB_URL,"sa","");  
                conn.close();
           }
       catch(ClassNotFoundException ex)
           {
                System.out.println( "ERROR: Class not found: " + ex.getMessage()); 
           }
    }
}

class not found:org.h2.Driverが常に表示される

15
joker

H2ドライバーがwarファイルにパッケージ化されるように、スコープをランタイムに設定する必要があります。

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.190</version>
    <scope>runtime</scope>
</dependency>
29
Marko Jurisic

IntelliJでも同じ問題が発生しましたが、見つかりませんでしたorg.h2.Driver。 Webからいくつかの解決策を試しましたが、IntelliJを再起動するだけで問題は解決しました。

これが時間の節約に役立つことを願っています。

9
Vitalii

ここで答えが見つかりました ランタイムスコープを削除します

<dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        #removed this -> <scope>test</scope> #
    </dependency>
2
mikelus

私の問題はdocker-compose.yaml環境変数の「」にありました:

SPRING_DATASOURCE_DRIVER-CLASS-NAME="org.h2.Driver"-機能しませんSPRING_DATASOURCE_DRIVER-CLASS-NAME=org.h2.Driver-機能します

0
burtsevyg