解决高版本使用Gson报错Caused by: java.lang.NoClassDefFoundError: java/sql/Time

开发项目使用jdk21,版本较高,需要用模块化引入。在使用gson转换json数据时,报错

Caused by: java.lang.NoClassDefFoundError: java/sql/Time at gson@2.8.5/com.google.gson.Gson.<init>(Gson.java:265) at gson@2.8.5/com.google.gson.Gson.<init>(Gson.java:186)

在引用其他依赖时,也报过类似关于sql错误,网上提到的解决方法多为引用gson .jar文件到本地,

经测试这种方法无效,不知什么原因。

可直接在module-info.java文件中引入 

requires java.sql; 即可解决。

在转换json为bean时,要在module-info.java配置

 opens xx.xx.bean to gson;

将bean所在包对gson模块放开

"D:\Program Files\Java\jdk1.8.0_281\bin\java.exe" "-javaagent:D:\idea\IntelliJ IDEA 2025.2.4\lib\idea_rt.jar=56590" -Dfile.encoding=UTF-8 -classpath "D:\Program Files\Java\jdk1.8.0_281\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\jfxswt.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_281\jre\lib\rt.jar;D:\vm\scala\scala_tutorial\target\classes;C:\Users\l999h\.m2\repository\com\mysql\mysql-connector-j\8.0.33\mysql-connector-j-8.0.33.jar;C:\Users\l999h\.m2\repository\com\google\protobuf\protobuf-java\3.21.9\protobuf-java-3.21.9.jar;C:\Users\l999h\.m2\repository\org\scala-lang\scala-library\2.12.11\scala-library-2.12.11.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-core_2.12\3.1.1\spark-core_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\com\thoughtworks\paranamer\paranamer\2.8\paranamer-2.8.jar;C:\Users\l999h\.m2\repository\org\apache\avro\avro\1.8.2\avro-1.8.2.jar;C:\Users\l999h\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;C:\Users\l999h\.m2\repository\org\apache\commons\commons-compress\1.8.1\commons-compress-1.8.1.jar;C:\Users\l999h\.m2\repository\org\tukaani\xz\1.5\xz-1.5.jar;C:\Users\l999h\.m2\repository\org\apache\avro\avro-mapred\1.8.2\avro-mapred-1.8.2-hadoop2.jar;C:\Users\l999h\.m2\repository\org\apache\avro\avro-ipc\1.8.2\avro-ipc-1.8.2.jar;C:\Users\l999h\.m2\repository\com\twitter\chill_2.12\0.9.5\chill_2.12-0.9.5.jar;C:\Users\l999h\.m2\repository\com\esotericsoftware\kryo-shaded\4.0.2\kryo-shaded-4.0.2.jar;C:\Users\l999h\.m2\repository\com\esotericsoftware\minlog\1.3.0\minlog-1.3.0.jar;C:\Users\l999h\.m2\repository\org\objenesis\objenesis\2.5.1\objenesis-2.5.1.jar;C:\Users\l999h\.m2\repository\com\twitter\chill-java\0.9.5\chill-java-0.9.5.jar;C:\Users\l999h\.m2\repository\org\apache\xbean\xbean-asm7-shaded\4.15\xbean-asm7-shaded-4.15.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-launcher_2.12\3.1.1\spark-launcher_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-kvstore_2.12\3.1.1\spark-kvstore_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\org\fusesource\leveldbjni\leveldbjni-all\1.8\leveldbjni-all-1.8.jar;C:\Users\l999h\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.10.0\jackson-core-2.10.0.jar;C:\Users\l999h\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.10.0\jackson-annotations-2.10.0.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-network-common_2.12\3.1.1\spark-network-common_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-network-shuffle_2.12\3.1.1\spark-network-shuffle_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-unsafe_2.12\3.1.1\spark-unsafe_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\javax\activation\activation\1.1.1\activation-1.1.1.jar;C:\Users\l999h\.m2\repository\org\apache\curator\curator-recipes\2.13.0\curator-recipes-2.13.0.jar;C:\Users\l999h\.m2\repository\org\apache\curator\curator-framework\2.13.0\curator-framework-2.13.0.jar;C:\Users\l999h\.m2\repository\org\apache\zookeeper\zookeeper\3.4.14\zookeeper-3.4.14.jar;C:\Users\l999h\.m2\repository\org\apache\yetus\audience-annotations\0.5.0\audience-annotations-0.5.0.jar;C:\Users\l999h\.m2\repository\jakarta\servlet\jakarta.servlet-api\4.0.3\jakarta.servlet-api-4.0.3.jar;C:\Users\l999h\.m2\repository\org\apache\commons\commons-lang3\3.10\commons-lang3-3.10.jar;C:\Users\l999h\.m2\repository\org\apache\commons\commons-math3\3.4.1\commons-math3-3.4.1.jar;C:\Users\l999h\.m2\repository\org\apache\commons\commons-text\1.6\commons-text-1.6.jar;C:\Users\l999h\.m2\repository\com\google\code\findbugs\jsr305\3.0.0\jsr305-3.0.0.jar;C:\Users\l999h\.m2\repository\org\slf4j\jul-to-slf4j\1.7.30\jul-to-slf4j-1.7.30.jar;C:\Users\l999h\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.30\jcl-over-slf4j-1.7.30.jar;C:\Users\l999h\.m2\repository\com\ning\compress-lzf\1.0.3\compress-lzf-1.0.3.jar;C:\Users\l999h\.m2\repository\org\xerial\snappy\snappy-java\1.1.8.2\snappy-java-1.1.8.2.jar;C:\Users\l999h\.m2\repository\org\lz4\lz4-java\1.7.1\lz4-java-1.7.1.jar;C:\Users\l999h\.m2\repository\com\github\luben\zstd-jni\1.4.8-1\zstd-jni-1.4.8-1.jar;C:\Users\l999h\.m2\repository\org\roaringbitmap\RoaringBitmap\0.9.0\RoaringBitmap-0.9.0.jar;C:\Users\l999h\.m2\repository\org\roaringbitmap\shims\0.9.0\shims-0.9.0.jar;C:\Users\l999h\.m2\repository\commons-net\commons-net\3.1\commons-net-3.1.jar;C:\Users\l999h\.m2\repository\org\scala-lang\modules\scala-xml_2.12\1.2.0\scala-xml_2.12-1.2.0.jar;C:\Users\l999h\.m2\repository\org\scala-lang\scala-reflect\2.12.10\scala-reflect-2.12.10.jar;C:\Users\l999h\.m2\repository\org\json4s\json4s-jackson_2.12\3.7.0-M5\json4s-jackson_2.12-3.7.0-M5.jar;C:\Users\l999h\.m2\repository\org\json4s\json4s-core_2.12\3.7.0-M5\json4s-core_2.12-3.7.0-M5.jar;C:\Users\l999h\.m2\repository\org\json4s\json4s-ast_2.12\3.7.0-M5\json4s-ast_2.12-3.7.0-M5.jar;C:\Users\l999h\.m2\repository\org\json4s\json4s-scalap_2.12\3.7.0-M5\json4s-scalap_2.12-3.7.0-M5.jar;C:\Users\l999h\.m2\repository\org\glassfish\jersey\core\jersey-client\2.30\jersey-client-2.30.jar;C:\Users\l999h\.m2\repository\jakarta\ws\rs\jakarta.ws.rs-api\2.1.6\jakarta.ws.rs-api-2.1.6.jar;C:\Users\l999h\.m2\repository\org\glassfish\hk2\external\jakarta.inject\2.6.1\jakarta.inject-2.6.1.jar;C:\Users\l999h\.m2\repository\org\glassfish\jersey\core\jersey-common\2.30\jersey-common-2.30.jar;C:\Users\l999h\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\l999h\.m2\repository\org\glassfish\hk2\osgi-resource-locator\1.0.3\osgi-resource-locator-1.0.3.jar;C:\Users\l999h\.m2\repository\org\glassfish\jersey\core\jersey-server\2.30\jersey-server-2.30.jar;C:\Users\l999h\.m2\repository\org\glassfish\jersey\media\jersey-media-jaxb\2.30\jersey-media-jaxb-2.30.jar;C:\Users\l999h\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;C:\Users\l999h\.m2\repository\org\glassfish\jersey\containers\jersey-container-servlet\2.30\jersey-container-servlet-2.30.jar;C:\Users\l999h\.m2\repository\org\glassfish\jersey\containers\jersey-container-servlet-core\2.30\jersey-container-servlet-core-2.30.jar;C:\Users\l999h\.m2\repository\org\glassfish\jersey\inject\jersey-hk2\2.30\jersey-hk2-2.30.jar;C:\Users\l999h\.m2\repository\org\glassfish\hk2\hk2-locator\2.6.1\hk2-locator-2.6.1.jar;C:\Users\l999h\.m2\repository\org\glassfish\hk2\external\aopalliance-repackaged\2.6.1\aopalliance-repackaged-2.6.1.jar;C:\Users\l999h\.m2\repository\org\glassfish\hk2\hk2-api\2.6.1\hk2-api-2.6.1.jar;C:\Users\l999h\.m2\repository\org\glassfish\hk2\hk2-utils\2.6.1\hk2-utils-2.6.1.jar;C:\Users\l999h\.m2\repository\org\javassist\javassist\3.25.0-GA\javassist-3.25.0-GA.jar;C:\Users\l999h\.m2\repository\io\netty\netty-all\4.1.51.Final\netty-all-4.1.51.Final.jar;C:\Users\l999h\.m2\repository\com\clearspring\analytics\stream\2.9.6\stream-2.9.6.jar;C:\Users\l999h\.m2\repository\io\dropwizard\metrics\metrics-core\4.1.1\metrics-core-4.1.1.jar;C:\Users\l999h\.m2\repository\io\dropwizard\metrics\metrics-jvm\4.1.1\metrics-jvm-4.1.1.jar;C:\Users\l999h\.m2\repository\io\dropwizard\metrics\metrics-json\4.1.1\metrics-json-4.1.1.jar;C:\Users\l999h\.m2\repository\io\dropwizard\metrics\metrics-graphite\4.1.1\metrics-graphite-4.1.1.jar;C:\Users\l999h\.m2\repository\io\dropwizard\metrics\metrics-jmx\4.1.1\metrics-jmx-4.1.1.jar;C:\Users\l999h\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.10.0\jackson-databind-2.10.0.jar;C:\Users\l999h\.m2\repository\com\fasterxml\jackson\module\jackson-module-scala_2.12\2.10.0\jackson-module-scala_2.12-2.10.0.jar;C:\Users\l999h\.m2\repository\com\fasterxml\jackson\module\jackson-module-paranamer\2.10.0\jackson-module-paranamer-2.10.0.jar;C:\Users\l999h\.m2\repository\org\apache\ivy\ivy\2.4.0\ivy-2.4.0.jar;C:\Users\l999h\.m2\repository\oro\oro\2.0.8\oro-2.0.8.jar;C:\Users\l999h\.m2\repository\net\razorvine\pyrolite\4.30\pyrolite-4.30.jar;C:\Users\l999h\.m2\repository\net\sf\py4j\py4j\0.10.9\py4j-0.10.9.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-tags_2.12\3.1.1\spark-tags_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\org\apache\commons\commons-crypto\1.1.0\commons-crypto-1.1.0.jar;C:\Users\l999h\.m2\repository\org\spark-project\spark\unused\1.0.0\unused-1.0.0.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-sql_2.12\3.1.1\spark-sql_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\com\univocity\univocity-parsers\2.9.1\univocity-parsers-2.9.1.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-sketch_2.12\3.1.1\spark-sketch_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-catalyst_2.12\3.1.1\spark-catalyst_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\org\scala-lang\modules\scala-parser-combinators_2.12\1.1.2\scala-parser-combinators_2.12-1.1.2.jar;C:\Users\l999h\.m2\repository\org\codehaus\janino\janino\3.0.16\janino-3.0.16.jar;C:\Users\l999h\.m2\repository\org\codehaus\janino\commons-compiler\3.0.16\commons-compiler-3.0.16.jar;C:\Users\l999h\.m2\repository\org\antlr\antlr4-runtime\4.8-1\antlr4-runtime-4.8-1.jar;C:\Users\l999h\.m2\repository\org\apache\arrow\arrow-vector\2.0.0\arrow-vector-2.0.0.jar;C:\Users\l999h\.m2\repository\org\apache\arrow\arrow-format\2.0.0\arrow-format-2.0.0.jar;C:\Users\l999h\.m2\repository\org\apache\arrow\arrow-memory-core\2.0.0\arrow-memory-core-2.0.0.jar;C:\Users\l999h\.m2\repository\com\google\flatbuffers\flatbuffers-java\1.9.0\flatbuffers-java-1.9.0.jar;C:\Users\l999h\.m2\repository\org\apache\arrow\arrow-memory-netty\2.0.0\arrow-memory-netty-2.0.0.jar;C:\Users\l999h\.m2\repository\org\apache\orc\orc-core\1.5.12\orc-core-1.5.12.jar;C:\Users\l999h\.m2\repository\org\apache\orc\orc-shims\1.5.12\orc-shims-1.5.12.jar;C:\Users\l999h\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\l999h\.m2\repository\io\airlift\aircompressor\0.10\aircompressor-0.10.jar;C:\Users\l999h\.m2\repository\org\threeten\threeten-extra\1.5.0\threeten-extra-1.5.0.jar;C:\Users\l999h\.m2\repository\org\apache\orc\orc-mapreduce\1.5.12\orc-mapreduce-1.5.12.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-storage-api\2.7.2\hive-storage-api-2.7.2.jar;C:\Users\l999h\.m2\repository\org\apache\parquet\parquet-column\1.10.1\parquet-column-1.10.1.jar;C:\Users\l999h\.m2\repository\org\apache\parquet\parquet-common\1.10.1\parquet-common-1.10.1.jar;C:\Users\l999h\.m2\repository\org\apache\parquet\parquet-encoding\1.10.1\parquet-encoding-1.10.1.jar;C:\Users\l999h\.m2\repository\org\apache\parquet\parquet-hadoop\1.10.1\parquet-hadoop-1.10.1.jar;C:\Users\l999h\.m2\repository\org\apache\parquet\parquet-format\2.4.0\parquet-format-2.4.0.jar;C:\Users\l999h\.m2\repository\org\apache\parquet\parquet-jackson\1.10.1\parquet-jackson-1.10.1.jar;C:\Users\l999h\.m2\repository\org\apache\spark\spark-hive_2.12\3.1.1\spark-hive_2.12-3.1.1.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-common\2.3.7\hive-common-2.3.7.jar;C:\Users\l999h\.m2\repository\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\l999h\.m2\repository\jline\jline\2.12\jline-2.12.jar;C:\Users\l999h\.m2\repository\com\tdunning\json\1.8\json-1.8.jar;C:\Users\l999h\.m2\repository\com\github\joshelser\dropwizard-metrics-hadoop-metrics2-reporter\0.1.2\dropwizard-metrics-hadoop-metrics2-reporter-0.1.2.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-exec\2.3.7\hive-exec-2.3.7-core.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-vector-code-gen\2.3.7\hive-vector-code-gen-2.3.7.jar;C:\Users\l999h\.m2\repository\org\apache\velocity\velocity\1.5\velocity-1.5.jar;C:\Users\l999h\.m2\repository\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Users\l999h\.m2\repository\org\antlr\antlr-runtime\3.5.2\antlr-runtime-3.5.2.jar;C:\Users\l999h\.m2\repository\org\antlr\ST4\4.0.4\ST4-4.0.4.jar;C:\Users\l999h\.m2\repository\com\google\code\gson\gson\2.2.4\gson-2.2.4.jar;C:\Users\l999h\.m2\repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-metastore\2.3.7\hive-metastore-2.3.7.jar;C:\Users\l999h\.m2\repository\javolution\javolution\5.5.1\javolution-5.5.1.jar;C:\Users\l999h\.m2\repository\com\jolbox\bonecp\0.8.0.RELEASE\bonecp-0.8.0.RELEASE.jar;C:\Users\l999h\.m2\repository\com\zaxxer\HikariCP\2.5.1\HikariCP-2.5.1.jar;C:\Users\l999h\.m2\repository\org\datanucleus\datanucleus-api-jdo\4.2.4\datanucleus-api-jdo-4.2.4.jar;C:\Users\l999h\.m2\repository\org\datanucleus\datanucleus-rdbms\4.1.19\datanucleus-rdbms-4.1.19.jar;C:\Users\l999h\.m2\repository\commons-pool\commons-pool\1.5.4\commons-pool-1.5.4.jar;C:\Users\l999h\.m2\repository\commons-dbcp\commons-dbcp\1.4\commons-dbcp-1.4.jar;C:\Users\l999h\.m2\repository\javax\jdo\jdo-api\3.0.1\jdo-api-3.0.1.jar;C:\Users\l999h\.m2\repository\javax\transaction\jta\1.1\jta-1.1.jar;C:\Users\l999h\.m2\repository\org\datanucleus\javax.jdo\3.2.0-m3\javax.jdo-3.2.0-m3.jar;C:\Users\l999h\.m2\repository\javax\transaction\transaction-api\1.1\transaction-api-1.1.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-serde\2.3.7\hive-serde-2.3.7.jar;C:\Users\l999h\.m2\repository\net\sf\opencsv\opencsv\2.3\opencsv-2.3.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-shims\2.3.7\hive-shims-2.3.7.jar;C:\Users\l999h\.m2\repository\org\apache\hive\shims\hive-shims-common\2.3.7\hive-shims-common-2.3.7.jar;C:\Users\l999h\.m2\repository\org\apache\hive\shims\hive-shims-0.23\2.3.7\hive-shims-0.23-2.3.7.jar;C:\Users\l999h\.m2\repository\org\apache\hive\shims\hive-shims-scheduler\2.3.7\hive-shims-scheduler-2.3.7.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-llap-common\2.3.7\hive-llap-common-2.3.7.jar;C:\Users\l999h\.m2\repository\org\apache\hive\hive-llap-client\2.3.7\hive-llap-client-2.3.7.jar;C:\Users\l999h\.m2\repository\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3.1.jar;C:\Users\l999h\.m2\repository\commons-logging\commons-logging\1.0.4\commons-logging-1.0.4.jar;C:\Users\l999h\.m2\repository\org\apache\httpcomponents\httpclient\4.5.6\httpclient-4.5.6.jar;C:\Users\l999h\.m2\repository\org\apache\httpcomponents\httpcore\4.4.10\httpcore-4.4.10.jar;C:\Users\l999h\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;C:\Users\l999h\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\l999h\.m2\repository\joda-time\joda-time\2.10.5\joda-time-2.10.5.jar;C:\Users\l999h\.m2\repository\org\jodd\jodd-core\3.5.2\jodd-core-3.5.2.jar;C:\Users\l999h\.m2\repository\org\datanucleus\datanucleus-core\4.1.17\datanucleus-core-4.1.17.jar;C:\Users\l999h\.m2\repository\org\apache\thrift\libthrift\0.12.0\libthrift-0.12.0.jar;C:\Users\l999h\.m2\repository\org\apache\thrift\libfb303\0.9.3\libfb303-0.9.3.jar;C:\Users\l999h\.m2\repository\org\apache\derby\derby\10.12.1.1\derby-10.12.1.1.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-client\3.2.4\hadoop-client-3.2.4.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-common\3.2.4\hadoop-common-3.2.4.jar;C:\Users\l999h\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\l999h\.m2\repository\javax\activation\javax.activation-api\1.2.0\javax.activation-api-1.2.0.jar;C:\Users\l999h\.m2\repository\org\eclipse\jetty\jetty-servlet\9.4.43.v20210629\jetty-servlet-9.4.43.v20210629.jar;C:\Users\l999h\.m2\repository\org\eclipse\jetty\jetty-security\9.4.43.v20210629\jetty-security-9.4.43.v20210629.jar;C:\Users\l999h\.m2\repository\org\eclipse\jetty\jetty-util-ajax\9.4.43.v20210629\jetty-util-ajax-9.4.43.v20210629.jar;C:\Users\l999h\.m2\repository\org\eclipse\jetty\jetty-webapp\9.4.43.v20210629\jetty-webapp-9.4.43.v20210629.jar;C:\Users\l999h\.m2\repository\org\eclipse\jetty\jetty-xml\9.4.43.v20210629\jetty-xml-9.4.43.v20210629.jar;C:\Users\l999h\.m2\repository\javax\servlet\jsp\jsp-api\2.1\jsp-api-2.1.jar;C:\Users\l999h\.m2\repository\com\sun\jersey\jersey-servlet\1.19\jersey-servlet-1.19.jar;C:\Users\l999h\.m2\repository\commons-beanutils\commons-beanutils\1.9.4\commons-beanutils-1.9.4.jar;C:\Users\l999h\.m2\repository\org\apache\commons\commons-configuration2\2.1.1\commons-configuration2-2.1.1.jar;C:\Users\l999h\.m2\repository\com\google\re2j\re2j\1.1\re2j-1.1.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-auth\3.2.4\hadoop-auth-3.2.4.jar;C:\Users\l999h\.m2\repository\com\nimbusds\nimbus-jose-jwt\9.8.1\nimbus-jose-jwt-9.8.1.jar;C:\Users\l999h\.m2\repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;C:\Users\l999h\.m2\repository\net\minidev\json-smart\2.4.7\json-smart-2.4.7.jar;C:\Users\l999h\.m2\repository\net\minidev\accessors-smart\2.4.7\accessors-smart-2.4.7.jar;C:\Users\l999h\.m2\repository\org\ow2\asm\asm\9.1\asm-9.1.jar;C:\Users\l999h\.m2\repository\org\apache\curator\curator-client\2.13.0\curator-client-2.13.0.jar;C:\Users\l999h\.m2\repository\org\apache\htrace\htrace-core4\4.1.0-incubating\htrace-core4-4.1.0-incubating.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-simplekdc\1.0.1\kerb-simplekdc-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-client\1.0.1\kerb-client-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerby-config\1.0.1\kerby-config-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-core\1.0.1\kerb-core-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerby-pkix\1.0.1\kerby-pkix-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerby-asn1\1.0.1\kerby-asn1-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerby-util\1.0.1\kerby-util-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-common\1.0.1\kerb-common-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-crypto\1.0.1\kerb-crypto-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-util\1.0.1\kerb-util-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\token-provider\1.0.1\token-provider-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-admin\1.0.1\kerb-admin-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-server\1.0.1\kerb-server-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerb-identity\1.0.1\kerb-identity-1.0.1.jar;C:\Users\l999h\.m2\repository\org\apache\kerby\kerby-xdr\1.0.1\kerby-xdr-1.0.1.jar;C:\Users\l999h\.m2\repository\org\codehaus\woodstox\stax2-api\4.2.1\stax2-api-4.2.1.jar;C:\Users\l999h\.m2\repository\com\fasterxml\woodstox\woodstox-core\5.3.0\woodstox-core-5.3.0.jar;C:\Users\l999h\.m2\repository\dnsjava\dnsjava\2.1.7\dnsjava-2.1.7.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-hdfs-client\3.2.4\hadoop-hdfs-client-3.2.4.jar;C:\Users\l999h\.m2\repository\com\squareup\okhttp\okhttp\2.7.5\okhttp-2.7.5.jar;C:\Users\l999h\.m2\repository\com\squareup\okio\okio\1.6.0\okio-1.6.0.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-yarn-api\3.2.4\hadoop-yarn-api-3.2.4.jar;C:\Users\l999h\.m2\repository\javax\xml\bind\jaxb-api\2.2.11\jaxb-api-2.2.11.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-yarn-client\3.2.4\hadoop-yarn-client-3.2.4.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-core\3.2.4\hadoop-mapreduce-client-core-3.2.4.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-yarn-common\3.2.4\hadoop-yarn-common-3.2.4.jar;C:\Users\l999h\.m2\repository\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;C:\Users\l999h\.m2\repository\org\eclipse\jetty\jetty-util\9.4.43.v20210629\jetty-util-9.4.43.v20210629.jar;C:\Users\l999h\.m2\repository\com\sun\jersey\jersey-core\1.19\jersey-core-1.19.jar;C:\Users\l999h\.m2\repository\javax\ws\rs\jsr311-api\1.1.1\jsr311-api-1.1.1.jar;C:\Users\l999h\.m2\repository\com\sun\jersey\jersey-client\1.19\jersey-client-1.19.jar;C:\Users\l999h\.m2\repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.10.5\jackson-module-jaxb-annotations-2.10.5.jar;C:\Users\l999h\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.2\jakarta.xml.bind-api-2.3.2.jar;C:\Users\l999h\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.1\jakarta.activation-api-1.2.1.jar;C:\Users\l999h\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.10.5\jackson-jaxrs-json-provider-2.10.5.jar;C:\Users\l999h\.m2\repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.10.5\jackson-jaxrs-base-2.10.5.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-jobclient\3.2.4\hadoop-mapreduce-client-jobclient-3.2.4.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-mapreduce-client-common\3.2.4\hadoop-mapreduce-client-common-3.2.4.jar;C:\Users\l999h\.m2\repository\org\apache\hadoop\hadoop-annotations\3.2.4\hadoop-annotations-3.2.4.jar;C:\Users\l999h\.m2\repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;C:\Users\l999h\.m2\repository\ch\qos\reload4j\reload4j\1.2.18.3\reload4j-1.2.18.3.jar;C:\Users\l999h\.m2\repository\org\slf4j\log4j-over-slf4j\1.7.30\log4j-over-slf4j-1.7.30.jar;C:\Users\l999h\.m2\repository\com\google\guava\guava\27.0-jre\guava-27.0-jre.jar;C:\Users\l999h\.m2\repository\com\google\guava\failureaccess\1.0\failureaccess-1.0.jar;C:\Users\l999h\.m2\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\Users\l999h\.m2\repository\org\checkerframework\checker-qual\2.5.2\checker-qual-2.5.2.jar;C:\Users\l999h\.m2\repository\com\google\errorprone\error_prone_annotations\2.2.0\error_prone_annotations-2.2.0.jar;C:\Users\l999h\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\l999h\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.17\animal-sniffer-annotations-1.17.jar" MySQLToHiveIncremental2 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder at org.apache.spark.internal.Logging$.org$apache$spark$internal$Logging$$isLog4j12(Logging.scala:222) at org.apache.spark.internal.Logging.initializeLogging(Logging.scala:127) at org.apache.spark.internal.Logging.initializeLogIfNecessary(Logging.scala:111) at org.apache.spark.internal.Logging.initializeLogIfNecessary$(Logging.scala:105) at org.apache.spark.SparkContext.initializeLogIfNecessary(SparkContext.scala:82) at org.apache.spark.internal.Logging.initializeLogIfNecessary(Logging.scala:102) at org.apache.spark.internal.Logging.initializeLogIfNecessary$(Logging.scala:101) at org.apache.spark.SparkContext.initializeLogIfNecessary(SparkContext.scala:82) at org.apache.spark.internal.Logging.log(Logging.scala:49) at org.apache.spark.internal.Logging.log$(Logging.scala:47) at org.apache.spark.SparkContext.log(SparkContext.scala:82) at org.apache.spark.internal.Logging.logInfo(Logging.scala:57) at org.apache.spark.internal.Logging.logInfo$(Logging.scala:56) at org.apache.spark.SparkContext.logInfo(SparkContext.scala:82) at org.apache.spark.SparkContext.<init>(SparkContext.scala:193) at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2678) at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$2(SparkSession.scala:942) at scala.Option.getOrElse(Option.scala:189) at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:936) at MySQLToHiveIncremental2$.main(MySQLToHiveIncremental.scala:12) at MySQLToHiveIncremental2.main(MySQLToHiveIncremental.scala) Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder at java.net.URLClassLoader.findClass(URLClassLoader.java:382) at java.lang.ClassLoader.loadClass(ClassLoader.java:418) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 21 more 进程已结束,退出代码为 1 x现在运行还有错误吗?
最新发布
11-22
<think>首先,用户的问题是:“请问java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 解决方法”。这是一个Java异常问题,具体是ClassCastException,表示尝试将一个String对象强制转换为Integer类型时出错。 根据系统级指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式必须使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 - 回答结构清晰,帮助用户逐步解决问题,保证真实可靠。 用户提供的引用是关于ClassCastException的其他例子: - 引用[1]:BigInteger不能转换为Integer。 - 引用[2]:Integer不能转换为String或Long。 - 引用[3]:Integer不能转换为String,原因是在Map中存储Object类型,取出时强制转换错误。 用户真正的需求是解决java.lang.String cannot be cast to java.lang.Integer”的问题。所以,我需要基于此提供解决方法。 关键点: - ClassCastException发生在运行时,当代码尝试将一个对象强制转换为它实际不是的类型时。 - 这里,具体是尝试将String对象转换为Integer对象。 常见原因: 1. 在代码中,某个地方有强制转换,如`(Integer) someObject`,但someObject实际上是String。 2. 这可能发生在使用泛型集合时,比如Map<String, Object>,其中存储了String,但取出时试图转换为Integer。 3. 或者,在反序列化、解析数据时出错,比如从JSON或XML解析数字。 解决方法: 1. **检查强制转换点**:找到代码中尝试将对象转换为Integer的地方。使用调试器或日志打印对象类型。 2. **使用instanceof检查**:在强制转换前,先用`instanceof`检查对象是否是Integer。 3. **正确解析字符串**:如果对象是String,但需要Integer,使用`Integer.parseInt()`或`Integer.valueOf()`来转换。 4. **避免不必要的强制转换**:确保数据类型一致。使用泛型来指定确切类型。 5. **检查数据来源**:如果数据来自外部源(如网络响应、文件),确保其格式正确。 结构化回答: - 逐步解释问题原因。 - 提供具体解决方法。 - 给出代码示例。 - 生成相关问题。 使用中文回答。 添加引用标识:由于用户提供了引用,我需要自然地引用它们,但用户引用是关于其他类似问题的,所以我可以在解释时提及,但主要针对当前问题。 生成相关问题:在回答结束时,添加几个相关问题。 最终回答结构: 1. 解释ClassCastException具体错误。 2. 分析可能原因。 3. 提供解决方法。 4. 给出代码示例。 5. 添加相关问题。</think>### java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 的解决方法 `java.lang.ClassCastException` 是 Java 运行时异常,发生在尝试将一个对象强制转换为不兼容的类型时。具体错误 `java.lang.String cannot be cast to java.lang.Integer` 表示代码试图将一个 `String` 类型的对象当作 `Integer` 类型使用,但两者在继承链上无关联(`String` `Integer` 都是 `Object` 的子类,但互不兼容)。这通常发生在强制转换操作(如 `(Integer) obj`)中,而 `obj` 实际是 `String` 类型。以下我将逐步分析原因并提供解决方法,确保内容真实可靠。 #### 问题原因分析 1. **强制转换错误**:在代码中直接使用强制转换(如 `(Integer) someObject`),但 `someObject` 的实际类型是 `String`,而非 `Integer`。这常见于: - 使用泛型集合(如 `Map<String, Object>`),存储了 `String` 值,但取出时尝试转换为 `Integer`。 - 数据解析问题:例如,从 JSON、XML 或用户输入中获取的数据本应是数字字符串(如 `"123"`),但代码错误地将其视为 `Integer` 对象。 2. **类型不匹配的来源**: - **外部数据源**:如网络 API 响应、数据库查询结果或文件读取,返回的数据类型不一致(例如,预期是整数,但实际是字符串)。 - **泛型擦除**:Java 泛型在编译后会擦除类型信息,运行时 `Object` 类型可能导致错误转换。引用[3] 中提到类似问题:使用 `Map<String, Object>` 存储值时,未明确注释 value 的类型,导致调用者误判[^3]。 3. **常见触发场景**: - Android 应用中,处理 `Intent` extras 或 `Bundle` 数据时,未正确检查类型。 - 解析第三方库(如 Gson 或 Jackson)返回的数据时,类型推断错误。 #### 解决方法 解决此问题的核心是 **避免不安全的强制转换**,并确保数据类型一致。以下是逐步的解决方案: 1. **定位错误代码**: - 使用日志或调试器(如 Android Studio 的 Logcat)找到抛出异常的堆栈跟踪。示例堆栈类似: ``` java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer at com.example.MyClass.myMethod(MyClass.java:20) ``` 这指示第 20 行有强制转换问题。检查该行代码,如 `Integer num = (Integer) someObject;`。 2. **使用 `instanceof` 进行类型检查**: - 在强制转换前,先验证对象类型。如果对象是 `String`,则手动解析为 `Integer`;否则处理异常。 - 代码示例: ```java Object obj = getDataFromSource(); // 假设从外部获取数据,可能是 String 或 Integer Integer result = null; if (obj instanceof String) { try { result = Integer.parseInt((String) obj); // 将 String 解析为 int,再转为 Integer } catch (NumberFormatException e) { // 处理无效数字字符串,如 "abc" e.printStackTrace(); } } else if (obj instanceof Integer) { result = (Integer) obj; // 安全转换 } else { // 处理其他类型或抛出自定义异常 throw new IllegalArgumentException("Unsupported type: " + obj.getClass()); } ``` 3. **正确解析字符串为整数**: - 如果数据源是字符串形式的数字(如 `"123"`),使用 `Integer.parseInt()` 或 `Integer.valueOf()` 进行转换,而非强制转换。 - 示例: ```java String strValue = "123"; // 可能来自 Map 或 API try { Integer intValue = Integer.parseInt(strValue); // 正确方法 // 或 Integer intValue = Integer.valueOf(strValue); } catch (NumberFormatException e) { // 捕获非数字字符串异常 e.printStackTrace(); } ``` 4. **避免使用 `Object` 类型,改用泛型或类型安全容器**: - 在集合中指定确切类型,减少 `Object` 的使用。例如,使用 `Map<String, Integer>` 而非 `Map<String, Object>`。 - 如果必须用 `Object`,添加注释或文档说明 value 的类型,避免调用者错误。引用[3] 强调:对外接口应明确注释 key 的 value 类型,防止强制转换错误[^3]。 - 代码改进示例: ```java // 错误做法:易导致 ClassCastException Map<String, Object> unsafeMap = new HashMap<>(); unsafeMap.put("age", "25"); // 存储 String Integer age = (Integer) unsafeMap.get("age"); // 抛出异常 // 正确做法:使用类型安全 Map Map<String, Integer> safeMap = new HashMap<>(); safeMap.put("age", 25); // 直接存储 Integer Integer age = safeMap.get("age"); // 无需强制转换 ``` 5. **检查数据来源反序列化**: - 如果数据来自网络或文件,使用库(如 Gson、Jackson)进行类型安全解析。例如,在 JSON 解析中定义 POJO 类: ```java // 使用 Gson 解析 JSON String json = "{\"age\":\"25\"}"; // 注意:age 是字符串,非整数 Gson gson = new Gson(); MyData data = gson.fromJson(json, MyData.class); // 需处理类型兼容性 class MyData { private String age; // 改为 String 类型,或使用适配器处理 // 或添加 setter 方法进行转换 public void setAge(String age) { this.age = age; } public Integer getAgeAsInteger() { return Integer.parseInt(age); } } ``` - 在 Android 中,处理 `Bundle` 时使用 `getString()` `getInt()` 等类型安全方法: ```java Bundle extras = getIntent().getExtras(); if (extras != null) { String ageStr = extras.getString("age"); if (ageStr != null) { try { int age = Integer.parseInt(ageStr); } catch (NumberFormatException e) { // 处理错误 } } } ``` 6. **添加防御性编程**: - 在关键位置添加日志,打印对象类型:`Log.d("TAG", "Object type: " + obj.getClass())`。 - 使用单元测试覆盖边界情况,如空值、无效字符串。 #### 预防措施 - **代码审查**:定期检查所有强制转换点,确保有 `instanceof` 检查。 - **文档规范**:在接口中明确标注数据类型,避免引用[3] 中的问题[^3]。 - **使用现代库**:如 Kotlin 的 null 安全特性或 Java 的 `Optional` 减少运行时错误。 通过以上方法,您可以彻底解决此异常。如果问题持续,请提供更多代码上下文以便进一步分析。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值