Problem with scala and java 11

33 views
Skip to first unread message

Cecil Westerhof

unread,
May 22, 2020, 1:34:20 PM5/22/20
to h2-da...@googlegroups.com
I have a program in scala where I use H2. When scala uses java 8 it works, but it does not work when scala uses java 11.

I created a very simple program to show the problem:
object Main extends App {
  println(Class.forName("org.h2.Driver"))
}

With java 1.8 I get:
scala -J-showversion CheckH2.scala
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1~deb9u1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)

class org.h2.Driver


I use the jar that I downloaded from https://h2database.com/h2-2019-03-13.zip in my classpath.


When I use java 11 I get:
scala -J-showversion CheckH2.scala
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)
java.lang.ClassNotFoundException: java.sql.Driver
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
        at java.base/java.net.URLClassLoader.defineClass(URLClassLoader.java:550)
        at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:458)
        at java.base/java.net.URLClassLoader$1.run(URLClassLoader.java:452)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:451)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
        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:315)
        at Main$.delayedEndpoint$Main$1(CheckH2.scala:2)
        at Main$delayedInit$body.apply(CheckH2.scala:1)
        at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
        at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.App$$anonfun$main$1.apply(App.scala:76)
        at scala.collection.immutable.List.foreach(List.scala:392)
        at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
        at scala.App$class.main(App.scala:76)
        at Main$.main(CheckH2.scala:1)
        at Main.main(CheckH2.scala)
.…

What could be the problem and how could I solve it?

--
Cecil Westerhof

Cecil Westerhof

unread,
May 22, 2020, 5:54:15 PM5/22/20
to h2-da...@googlegroups.com
It is a java 11 problem. I get the same with SQLite.
I should find a better solution, but for the moment I solved it with:
    JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 scala -J-showversion CheckH2.scala


--
Cecil Westerhof
Reply all
Reply to author
Forward
0 new messages