簡體   English   中英

java.sql.Time 異常

[英]java.sql.Time exception

有沒有人遇到過這樣的事情? 切換到 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 上工作。有什么建議嗎?

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

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

java.sql是一個模塊, java9 sql模塊

嘗試:

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

在我的情況下,在配置了JAR清單的情況下運行它之后,它開始工作

在此處輸入圖片說明

以下幫助了我。 IDE:運行->編輯配置,然后在“ Shorten命令行”字段中選擇“ JAR清單”

Gson 有一些 SQL 類型的默認適配器(其中之一是java.sql.Time )。 從 Java 9 開始,SQL 類位於它們自己的模塊 ( java.sql ) 中。 當您執行程序時,很可能默認情況下未包含該模塊。

但是,從Gson 2.8.9開始,對 SQL 類型的依賴是可選的。 您可以毫無問題地使用 Gson,即使它們不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM