модули java 9, NoClassDefFoundError: java.sql.Date

Я попытался запустить наш проект 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

person Philipp Hemmelmayr    schedule 16.07.2018    source источник
comment
какая у вас версия IntelliJ и можете ли вы показать нам свои полные конфигурации выполнения из IntelliJ?   -  person Naman    schedule 16.07.2018
comment
Если вы не создадите module-info.java, все модули Java SE, в том числе java.sql, будут доступны во время выполнения, поэтому вам не нужен --add-modules. Что-то еще должно быть не так.   -  person Nicolai Parlog    schedule 16.07.2018
comment
Можете ли вы вставить часть трассировки стека, чтобы помочь диагностировать это? Одна из возможных причин заключается в том, что на картинке есть собственный загрузчик классов, который делегирует полномочия загрузчику начальной загрузки (модуль java.sql сопоставлен с загрузчиком классов платформы). Другая причина в том, что вы перешли на модули и пропустили requires java.sql (но это не объясняет, как был скомпилирован код).   -  person Alan Bateman    schedule 17.07.2018
comment
Если вы создали module-info.java, как и следует в дальнейшем, просто добавьте require java.sql;   -  person barbazoo    schedule 29.09.2019


Ответы (1)


Проблема устранилась после того, как я удалил jdk9 и снова добавил его.

person Philipp Hemmelmayr    schedule 12.09.2018