Не удалось запустить команду grails в новом проекте на Mac из-за ошибки «Не удалось определить версию Java»

Мне нужно запустить существующий проект Grails (который работал в Windows) в системе Mac.

Перед этим я пытаюсь настроить Grails и запустить «hello world». Я скачал и установил Grails с помощью sdkman. Мой каталог установки -

/Пользователи/sandeepan.nath/Рабочий стол/настройки где я создал каталог grails и запустил команду sdk install grails, которая установила grails и создала их -

SandeepanNath:grails sandeepan.nath$ ls -lrth
total 80
-rw-r--r--   1 sandeepan.nath  1974079253    73B Jun  1 13:03 gradle.properties
drwxr-xr-x   3 sandeepan.nath  1974079253    96B Jun  1 13:03 gradle
-rwxr--r--   1 sandeepan.nath  1974079253   4.9K Jun  1 13:03 gradlew
-rwxr--r--   1 sandeepan.nath  1974079253   2.3K Jun  1 13:03 gradlew.bat
-rwxr--r--   1 sandeepan.nath  1974079253   4.6K Jun  1 13:03 grailsw
-rwxr--r--   1 sandeepan.nath  1974079253   2.3K Jun  1 13:03 grailsw.bat
drwxr-xr-x   5 sandeepan.nath  1974079253   160B Jun  1 13:03 src
-rw-r--r--   1 sandeepan.nath  1974079253   5.3K Jun  1 13:03 grails-wrapper.jar
drwxr-xr-x  12 sandeepan.nath  1974079253   384B Jun  1 13:03 grails-app
-rw-r--r--   1 sandeepan.nath  1974079253   2.9K Jun  1 13:03 build.gradle
drwxr-xr-x   2 sandeepan.nath  1974079253    64B Jun  1 13:03 build

Я запустил grails create-app hello, чтобы создать проект, находясь в каталоге grails, но это не удалось:

SandeepanNath:hello sandeepan.nath$ grails create-app hello
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/Users/sandeepan.nath/.sdkman/candidates/grails/3.3.10/lib/org.codehaus.groovy/groovy/jars/groovy-2.4.17.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
| Error Error initializing classpath: Could not determine java version from '12.0.1'. (Use --stacktrace to see the full trace)

Я поднялся на один уровень выше, вне каталога Grails, и создал проект (работал) -

SandeepanNath:setups sandeepan.nath$ grails create-app new_proj
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/Users/sandeepan.nath/.sdkman/candidates/grails/3.3.10/lib/org.codehaus.groovy/groovy/jars/groovy-2.4.17.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
| Application created at /Users/sandeepan.nath/Desktop/setups/new_proj

и выполнил шаги по созданию проекта, как в https://docs.grails.org/3.3.10/guide/single.html#creatingAnApplication.

Теперь, когда я нахожусь внутри new_proj и пытаюсь запустить команду grails, я здесь заблокирован -

SandeepanNath:new_proj sandeepan.nath$ grails
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/Users/sandeepan.nath/.sdkman/candidates/grails/3.3.10/lib/org.codehaus.groovy/groovy/jars/groovy-2.4.17.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
| Error Error initializing classpath: Could not determine java version from '12.0.1'. (Use --stacktrace to see the full trace)

У меня домашняя страница Java установлена ​​​​в переменной PATH среды -

SandeepanNath:~ sandeepan.nath$ echo $PATH
/Users/sandeepan.nath/.sdkman/candidates/grails/current/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/bin:/opt/apache-maven/bin:/usr/libexec/java_home/bin:/opt/apache-maven/bin:/usr/libexec/java_home:/opt/apache-maven/bin

Примечание: такого пути, как /usr/libexec/java_home/bin, нет.

Тем не менее, когда я пытаюсь запустить команду grails из своего проекта, я получаю эту ошибку Could not determine java version -

SandeepanNath:new_proj sandeepan.nath$ grails --stacktrace
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.reflection.CachedClass (file:/Users/sandeepan.nath/.sdkman/candidates/grails/3.3.10/lib/org.codehaus.groovy/groovy/jars/groovy-2.4.17.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
| Error Error initializing classpath: Could not determine java version from '12.0.1'. (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
java.lang.IllegalArgumentException: Could not determine java version from '12.0.1'.
    at org.gradle.api.JavaVersion.toVersion(JavaVersion.java:68)
    at org.gradle.api.JavaVersion.current(JavaVersion.java:78)
    at org.gradle.internal.jvm.UnsupportedJavaRuntimeException.assertUsingVersion(UnsupportedJavaRuntimeException.java:29)
    at org.gradle.tooling.internal.consumer.ConnectorServices.checkJavaVersion(ConnectorServices.java:66)
    at org.gradle.tooling.internal.consumer.ConnectorServices.close(ConnectorServices.java:53)
    at org.gradle.tooling.internal.consumer.DefaultGradleConnector.close(DefaultGradleConnector.java:57)
    at org.grails.cli.gradle.cache.CachedGradleOperation.call(CachedGradleOperation.groovy:78)
    at org.grails.cli.GrailsCli.populateContextLoader(GrailsCli.groovy:525)
    at org.grails.cli.GrailsCli.initializeProfile(GrailsCli.groovy:508)
    at org.grails.cli.GrailsCli.initializeApplication(GrailsCli.groovy:306)
    at org.grails.cli.GrailsCli.execute(GrailsCli.groovy:269)
    at org.grails.cli.GrailsCli.main(GrailsCli.groovy:159)

Поскольку ошибка возникает из-за gradle, вам может повезти с более новой версией gradle. Но в прошлом мне не везло с этим (потеря кода при перезагрузке с новым градиентом 4.X).

cfrick 01.06.2019 11:00

Спасибо, мне тоже пришлось установить gradle. Вышеупомянутое наблюдение было с неустановленным градиентом.

Sandeepan Nath 01.06.2019 15:43

После понижения версии JDK мне пришлось создать новое приложение через create-app, иначе возникали ошибки.

Sandeepan Nath 01.06.2019 15:44

@cfrick «... вам может повезти с более новой версией Gradle» - обновление Gradle не решит эту проблему. Это создаст другие проблемы и не решит эту.

Jeff Scott Brown 02.06.2019 20:12

3.5 — рекомендуемая версия Gradle для Grails 3.3.8.

Jeff Scott Brown 02.06.2019 20:13

@ Ответ Дейва ниже правильный. Мы поддерживаем Java 7 и 8 с Grails 3.3.8.

Jeff Scott Brown 02.06.2019 20:14
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
334
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Установите JDK 8 из Oracle, после установки все будет в порядке. Для Grails 3 требуется 7 или 8.

Другие вопросы по теме