安装Groovy

安装Groovy,groovy,Groovy,最近我下载了Groovy-2.3.6,并尝试在Linux系统上安装它。我听从老师的指示。我设置了GROOVY_HOME变量 export GROOVY_HOME=/home/work/Software/groovy-2.3.6 然后,我将环境路径变量设置为Groovy bin文件夹 export PATH=$PATH:/home/work/Software/groovy-2.3.6/bin JAVA_HOME变量已经创建 现在,当我尝试运行Groovy的任何命令时,它会生成以下错误 Ex

最近我下载了Groovy-2.3.6,并尝试在Linux系统上安装它。我听从老师的指示。我设置了GROOVY_HOME变量

export GROOVY_HOME=/home/work/Software/groovy-2.3.6
然后,我将环境路径变量设置为Groovy bin文件夹

  export PATH=$PATH:/home/work/Software/groovy-2.3.6/bin
JAVA_HOME变量已经创建

现在,当我尝试运行Groovy的任何命令时,它会生成以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groo/tool/GroovyStarter
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.tools.GroovyStarter
      at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.codehaus.groovy.tools.GroovyStarter.  Program will exit.
我正在浏览一些网站来解决这个问题。我发现,如果我设置了通往GROOVY_HOME的错误路径,那么它就可能发生。我不知道该变量的正确路径是什么。谁能帮我做这个吗。
谢谢

在Linux/Mac上安装Groovy最简单的方法是使用。以下是我的建议:

  • 撤销你已经做过的一切
  • 通过运行
    curl-s”安装SDKMANhttps://get.sdkman.io“| bash
  • 打开一个新终端并使用命令
    sdk install groovy 2.3.6安装groovy

接下来,您可以使用SDKMAN在Groovy的不同版本(以及Gradle、Grails、Griffon等)之间切换,安装新版本,删除旧版本,等等。

尽管我同意GVM解决方案可能是正确的选择,我相信您遇到的具体问题是bug的扩展,它阻止您在安装路径(以及GROOVY_HOME变量)中拥有空间;路径中也不能有连字符或句点

因此,您需要类似以下内容:

export GROOVY_HOME=/home/work/Software/groovy236

这种模式也适用于真正的Windows。

我最近在使用groovy-2.0.8时遇到了同样的问题。 我不确定我的groovy-2.0.8二进制文件是否已损坏,或者版本2是否引入了一些根本不同的东西,但是,当我将groovy-1.8.9设置为我的路径时,我在尝试运行groovy脚本时不再出现错误

我还发现上面的答案指出,不能将“连字符或句点”视为误导和错误。

在Windows上:

  • 从下载groovy的最新版本
  • 解压缩tar文件(例如c:\groovy)
  • 设置环境变量: a] GROOVY_主页到GROOVY目录(例如C:\GROOVY\GROOVY-2.4.6)。 b] JRE的JAVA_主页

  • 确保GROOVY_HOME/bin和JAVA_HOME/bin在您的路径中都可用


  • 现在,您可以成功地运行groovy代码(例如groovy hello.groovy)

    尝试通过删除“\bin”来更改路径,我去掉了它,它对我非常有效

    在基于Ubuntu的发行版上(您似乎正在使用unix-y),
    sudo apt install groovy
    我收到了相同的错误消息,经过多次尝试和错误后发现,
    groovy\u HOME
    变量设置不正确

    groovy
    应用程序依赖于指向正确目录的
    groovy\u HOME
    路径,否则您将看到上面的错误

    我在上面看到一个答案,建议从目录名中删除句点并将其添加到路径中。这将起作用,但可以使用符号链接以更干净的方式完成

    请点击以下链接或点击我的摘要:

  • 创建一个名为
    current
    的符号链接,指向groovy主目录(例如
    /usr/share/groovy/groovy-2.1.6
    )。符号链接可以位于保存groovy-x.y.z目录的同一目录中。这种方法的优点是避免了路径中的无效字符,并且可以在升级后重定向到groovy的新版本。下面是一个假设groovy安装在
    /usr/share/groovy/
    和groovy版本2.1.6中的示例

    sudo ln-s/usr/share/groovy/groovy-2.1.6当前版本

  • 使用新的符号链接定义登录脚本中的
    GROOVY\u HOME
    变量(例如
    .profile
    ):

    export GROOVY\u HOME=/usr/share/GROOVY/current

  • GROOVY\u HOME/bin
    添加到登录脚本中的
    PATH
    变量:

    export PATH=$GROOVY\u HOME/bin:$PATH

  • 注意:最好在测试之前注销并登录,以确保初始化脚本正确设置环境变量

    通过执行
    groovy-v


  • 我希望这对任何偶然发现此链接的人都有效。

    我在windows操作系统中遇到了同样的问题。我终于找到了这个,多亏了作者,我解决了我的问题。简而言之,不要设置
    GROOVY\u HOME
    env var。使用其他工具,例如
    GROOVY\u DIR
    ,然后在
    路径中设置
    %GROOVY\u DIR%\bin
    。繁荣Groovy现在正在工作

    谢谢你的回复。在curl-s get.gvmtool.net | bash之后,得到“-bash:ZSH_VERSION:unbound variable”错误。将其设置为“”,导出ZSH_VERSION=“”。在运行GVM安装groovy 2.3.6时得到“-bash:GVM\u FORCE\u OFFLINE:unbound variable”。GVM已被SDKMAN替换。奇怪的是,我已经对groovy和Grails使用了
    SDKMAN 5.0.0+51
    sdk ls groovy
    显示我安装并使用
    2.4.7
    但是
    groovy
    命令也给了我这个错误
    无法找到或加载主类org.codehaus.groovy.tools.GroovyStarter
    Ok,在卸载以前版本的
    sdk uninstall groovy 2.4.3
    sdk uninstall groovy 2.4.4
    sdk uninstall groovy 2.4.5
    sdk uninstall groovy 2.4.6
    +1以使用gvm后,我的错误消失了,但对于错误本身:正确的配置就好像您可以调用
    $groovy\u HOME/bin/groovy
    。因此,在
    哪个groovy
    之前,检查路径中是否还有另一个/旧的groovy。因此,您可能希望将groovy home添加到旧路径之前:
    export groovy\u home=/home/。。。;导出路径=$GROOVY\u HOME/bin:$PATH