java版本
java -version openjdk version "11.0.5" 2019-10-15 OpenJDK Runtime Environment (build 11.0.5+10) OpenJDK 64-Bit Server VM (build 11.0.5+10, mixed mode)
gradle版本
./gradlew -version
Build time: 2019-11-01 20:42:00 UTC Revision: dd870424f9bd8e195d614dc14bb140f43c22da98
Kotlin: 1.3.41 Groovy: 2.5.4 Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019 JVM: 11.0.5 (Oracle Corporation 11.0.5+10) OS: Linux 4.19.84-1-lts amd64
错误日志
Task :mtool-server:startScripts Errors occurred while build effective model from /home/liyf/.gradle/caches/modules-2/files-2.1/com.alibaba/druid/1.1.21/bb00033125ec9d5696e848c6b1e6fc58efe11ac3/druid-1.1.21.pom: 'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is ${project.basedir}/lib/openjdk-1.8-tools.jar in com.alibaba:druid:1.1.21 'dependencies.dependency.systemPath' for com.sun:jconsole:jar must specify an absolute path but is ${project.basedir}/lib/openjdk-1.8-jconsole.jar in com.alibaba:druid:1.1.21 'dependencies.dependency.systemPath' for com.alibaba:jconsole:jar must specify an absolute path but is ${env.JAVA_HOME}/lib/jconsole.jar in com.alibaba:druid:1.1.21 'dependencies.dependency.systemPath' for com.alibaba:tools:jar must specify an absolute path but is ${env.JAVA_HOME}/lib/tools.jar in com.alibaba:druid:1.1.21
原提问者GitHub用户overstart
如果在使用Java 11编译Druid时报错,可能的原因是:
Druid还不支持Java 11
Druid目前仍然只支持Java 8,并没有正式支持Java 11。
Druid使用了Java API,Java 11中移除
有些 Druid 使用的Java API 在Java 11中已移除,导致编译无法通过。
Druid使用了Java 11弃用的API
Druid 使用的某些API在Java 11中已经被弃用,需要更新。
相关的错误有:
cannot find symbol 错误
util.regex包被移除
sun.misc 包被移除
为了解决这个问题,主要有几种方法:
降级JDK到Java 8,继续使用Druid现有版本
升级Druid到支持Java 11的版本
从Druid 1.1.16开始支持Java 11,需要升级到这个版本及以上。
修改Druid源码使其兼容Java 11
需要对使用了移除/弃用API的代码进行修改,使其能在Java 11下工作。
使用Druid alternatives
如使用HikariCP代替Druid,HikariCP已经支持Java 11。
总的来说,由于Druid尚不支持Java 11,编译时会有错误。
降级JDK到Java 8或者升级Druid到支持Java 11的版本是最简单的方式。
修改源码和切换数据源则需要相对复杂一点。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。