Я попытался запустить наш проект java 8 gradle с java 9, так как мы хотим перейти на него. Однако при выполнении модульного теста я получаю
java.lang.ClassNotFoundException: java.sql.Date
исключение
бросил com.fasterxml.jackson.databind.deser.std.DateDeserializers
Выглядит так в коде:
static {
Class<?>[] numberTypes = new Class<?>[] {
...
java.sql.Date.class,
...
};
...
}
Я посмотрел в Интернете, и, по-видимому, если вы хотите избежать создания файла module-info.java
для каждого модуля, вам нужно добавить параметр --add-modules java.sql
.
Я использую intellij и добавил параметр в аргументы javac в File>Settings>Build,Execution,Deployment>Compiler>Java Compiler
, а также в параметре запуска конфигурации как VM, но я все еще получаю исключение.
Есть ли более простой способ сделать это, или что я делаю неправильно? Спасибо
редактировать: Версия IntelliJ:
IntelliJ IDEA 2018.1.5 (Community Edition)
Build #IC-181.5281.24, built on June 12, 2018
JRE: 1.8.0_152-release-1136-b39 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
module-info.java
, все модули Java SE, в том числе java.sql, будут доступны во время выполнения, поэтому вам не нужен--add-modules
. Что-то еще должно быть не так. - person Nicolai Parlog   schedule 16.07.2018requires java.sql
(но это не объясняет, как был скомпилирован код). - person Alan Bateman   schedule 17.07.2018