【问题标题】:"Error occurred running Grails CLI: null" when running grails 3.0 command line运行 grails 3.0 命令行时出现“运行 Grails CLI 时出错:null”
【发布时间】:2015-04-20 21:25:28
【问题描述】:

我正在尝试运行grails list-profiles,但收到以下错误:

snowch@snowch-ws2:~/repos$ grails list-profiles --stacktrace
| Error Error occurred running Grails CLI: null (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
java.lang.NullPointerException
    at org.grails.cli.profile.git.GitProfileRepository.getAllProfiles(GitProfileRepository.groovy:72)
    at org.grails.cli.profile.commands.ListProfilesCommand.handle(ListProfilesCommand.groovy:43)
    at org.grails.cli.GrailsCli.execute(GrailsCli.groovy:173)
    at org.grails.cli.GrailsCli.main(GrailsCli.groovy:99)
| Error Error occurred running Grails CLI: null

我的版本是:

snowch@snowch-ws2:~/repos$ grails --version
| Grails Version: 3.0.1
| Groovy Version: 2.4.3
| JVM Version: 1.7.0_75

这是全新安装的 grails 和 gvm。

grails create-app myapp 命令可以正常工作。

这个问题类似于Grails 3.0 error, nullpointer,但是,这个问题并没有说明正在运行什么命令。

【问题讨论】:

  • 我在 Ubuntu 14 上使用 openjdk-9 时遇到了这个错误。当恢复到 openjdk-8 时,它为我解决了这个问题。

标签: grails


【解决方案1】:

网上搜索后发现,在运行命令前需要将我的GRAILS_OPTS环境变量设置如下:

export GRAILS_OPTS="-XX:-UseSplitVerifier -Xverify:none"

修复来源:https://grails.org/news/1292028

【讨论】:

  • 这个搜索结果是否也解释了原因?
  • 我已将修复的原始来源添加到答案中。一篇文章暗示这个问题是一个 jvm 错误。
  • Java HotSpot(TM) 64 位服务器虚拟机警告:忽略选项 UseSplitVerifier -Xverify:none; 8.0 中删除了支持 |
  • 上面的“修复来源”链接看起来不像以前那样了。
  • 我正在尝试使用 Grails v2.4.0 和 Java v8 解决。它不适合我
【解决方案2】:

我还没有弄清楚错误的确切原因是什么,但是如果您尝试在同时安装了 grails 2 的系统中运行 grails 3 似乎会发生此错误。

我为使命令运行所做的工作 - 我在一个新目录中创建了项目。我的旧 grails 应用程序的目录是: /home/me/projects/oldgrailsapp

当我尝试在 /home/me/projects 中执行 grails 命令时失败了,但是当我尝试 在另一个目录中 /home/me /projects_new,成功了。所以我猜问题是旧的 grails 配置在某种程度上干扰了新的配置。

我还通过编辑我的主目录中的 .bashrc 文件从 PATH 变量中删除了对旧 grails 和 groovy 版本的引用(我真的不知道是否需要它)。

【讨论】:

    【解决方案3】:

    我在编写“Building an Andoird Client”指南时也有同样的经历,每当我尝试在创建第一个应用程序grails-app 的同一文件夹中创建应用程序时,都会收到以下消息: | Error Error occurred running Grails CLI: null (Use --stacktrace to see the ful l trace) 所以很明显,当您在包含“grails-app”目录的文件夹中创建一个 grails 应用程序时,grails 会将此文件夹视为完整的 grails 应用程序,因此无法在该目录中创建应用程序。 我用了: 圣杯 3.1.15 Java 1.8.0.101 希望对您有所帮助。

    【讨论】:

      【解决方案4】:

      它现在对我有用。 这是我的设置

      GRAILS_HOME=C:\Users\murali.solaappan\apps\grails-3.1.11

      JAVA_HOME=C:\Program Files\Java\jdk1.8.0_102

      我在第一次启动“grails”时收到了同样的错误

      **Error occurred running Grails CLI: connect timed out**
      

      阅读 GRAILS_HOME\bin\grails.bat 后,我​​发现在 GRAILS_HOME 目录中执行“grails”会有所不同。所以我也这样做了

      现在我收到错误消息,指出 GRAILS 无法从我的镜像存储库中找到特定的 maven 包 - 打印了我的私有 nexus 存储库 url。我知道这是我的私人仓库,没有连接到互联网。

      所以我将 MY_HOME_DIR.m2\"settings.xml" 更改为 Maven 中默认提供的那个。

      之后在 %GRAILS_HOME% 目录中执行“grails”。

      它像微风一样工作!我得到了 grails 提示。

      C:\Users\murali.solayappan\apps>grails

      |输入要运行的命令名称。使用 TAB 完成:

      grails> 退出

      【讨论】:

        【解决方案5】:

        当您为要运行它的项目安装了错误版本的 grails 时,有时会发生这种情况 尝试在其他地方运行它,看看是否出现相同的错误

        【讨论】:

          【解决方案6】:

          我遇到了同样的问题,因为我使用的是不兼容的 Grails 1.3.5 witj Java 8。我用 Java 7 进行了更改,它工作正常。

          【讨论】:

          • Java 7 三年多以来没有收到任何安全更新。使用它会带来巨大的安全风险,应尽可能避免!
          • Nica Haase,我认为有很多 grails 项目使用 Grails 3 下的版本并且可能存在这个问题...我提供了一个运行旧项目的解决方案,但是是的,最好更新使用更新版本的 java 和 grails
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-04-07
          • 1970-01-01
          • 2017-04-04
          • 2013-02-05
          • 1970-01-01
          • 2021-12-31
          • 1970-01-01
          相关资源
          最近更新 更多