我需要在Mac系统上运行一个现有的grails项目(在Windows上运行)。
在此之前,我尝试设置grails并运行“ hello world”。我使用sdkman下载并安装了grails。我的安装目录是-
/Users/sandeepan.nath/Desktop/setups 我在其中创建了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目录中跑了grails create-app hello创建一个项目,但是失败了-
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)
我在环境PATH变量中设置了Java主页-
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)
答案 0 :(得分:0)
从Oracle安装JDK 8,一旦安装就可以了。 Grails 3需要7或8。