gson java.sql.时间异常错误

n3schb8v  于 2022-11-06  发布在  Java
关注(0)|答案(5)|浏览(153)

有没有人遇到过这样的事情?在切换到JAVA 9之后,我遇到了这样的问题

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

我尝试了不同的java版本,gson库也没有更新,我的意思是相同的包在java 8上工作。有什么建议吗?

5f0d552i

5f0d552i1#

对于我来说,在配置了JAR清单后运行它,它就开始工作了

zhte4eai

zhte4eai2#

将java.sql添加到您的module-info.java文件:

module MODULE_NAME {
    ...
    requires java.sql;
    ...
}
9fkzdhlc

9fkzdhlc3#

java.sql是一个模块,java9 sql module
请尝试:

java --module-path lib --add-modules java.sql
vql8enpb

vql8enpb4#

Gson有一些SQL类型的默认适配器(其中之一是java.sql.Time)。从Java 9开始,SQL类在它们自己的模块(java.sql)中。很可能在执行程序时,默认情况下没有包含该模块。
但是,从Gson 2.8.9开始,对SQL类型的依赖性是可选的。您可以使用Gson而不会出现任何问题,即使它们不存在。

jgwigjjp

jgwigjjp5#

以下内容对我有帮助。IDE:运行-〉编辑配置,并在“缩短命令行”字段中选择“JAR清单”

相关问题