14

does anybody met something like that? After switching to JAVA 9 I faced such problem

Caused by: java.lang.NoClassDefFoundError: java/sql/Time
    at com.google.gson.Gson.<init>(Gson.java:240)
    at com.google.gson.GsonBuilder.create(GsonBuilder.java:569)
    at net.thucydides.core.reports.json.gson.GsonJSONConverter.<init>(GsonJSONConverter.java:50)
    at net.thucydides.core.reports.json.gson.GsonJSONConverter$$FastClassByGuice$$6794eb79.newInstance(<generated>)
    at com.google.inject.internal.DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:89)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:111)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:90)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:268)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:194)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1019)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1085)
    at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1015)
    ... 25 more
Caused by: java.lang.ClassNotFoundException: java.sql.Time
    at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
    ... 42 more

I tried different java version, also gson library was not updated, I mean the same package was working on java 8. Any suggestion?

Ole V.V.
  • 81,772
  • 15
  • 137
  • 161
Shell Scott
  • 1,679
  • 18
  • 28

5 Answers5

8

for my case it start works after i run it with JAR manifest configured

enter image description here

Shell Scott
  • 1,679
  • 18
  • 28
7

Add java.sql to your module-info.java file:

module MODULE_NAME {
    ...
    requires java.sql;
    ...
}
andresp
  • 1,624
  • 19
  • 31
1

java.sql is a module, java9 sql module

Try:

java --module-path lib --add-modules java.sql
JineshEP
  • 738
  • 4
  • 7
1

Gson has default adapters for some SQL types (one of that is java.sql.Time). Since Java 9 the SQL classes are in their own module (java.sql). Most likely that module was not included by default for you when you executed your program.

However, starting with Gson 2.8.9 the dependency on the SQL types is optional. You can use Gson without any issues, even if they are not present.

Marcono1234
  • 5,856
  • 1
  • 25
  • 43
0

The following helped me. IDE: Run-> Edit Configurations and in the "Shorten command line" field select the "JAR manifest"