最近我下载了Groovy-2.3.6,并尝试在Linux系统上安装它。我遵循http://groovy-lang.org/install.html的指令。我设置了GROOVY_HOME变量。
export GROOVY_HOME=/home/work/Software/groovy-2.3.6
然后将环境路径变量设置为Groovybin文件夹
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,那么它可能会发生。我想不出该变量的正确路径。谁能帮我一下。谢谢
9条答案
按热度按时间slwdgvem1#
在Linux/Mac上安装Groovy最简单的方法是使用SDKMAN。我的建议是
curl -s "https://get.sdkman.io" | bash
安装SDKMANsdk install groovy 2.3.6
安装groovy接下来,您可以使用SDKMAN在不同版本的Groovy(以及Gradle,Grails,Griffon等)之间切换,安装新版本,删除旧版本等等。
ehxuflar2#
虽然我同意GVM解决方案可能是正确的方法,但我相信您遇到的具体问题是bug的扩展,它阻止您在安装路径(和GROOVY_HOME变量)中拥有空间;路径中也不能有连字符或句点。
因此,您需要类似于:
这种模式也适用于真正的Windows。
txu3uszq3#
在Windows上::
1.从http://groovy.codehaus.org/Download下载最新版本的groovy
1.解压tar文件(例如c:\groovy)
1.设置环境变量:a] GROOVY_HOME到groovy目录(例如C:\groovy\groovy-2.4.6)。B] JAVA_HOME到JRE
1.确保GROOVY_HOME/bin和JAVA_HOME/bin在PATH中都可用
现在您可以成功地运行Groovy代码了(例如GroovyHello.groovy)
im9ewurl4#
我最近在使用groovy-2.0.8时遇到了同样的问题。我不确定是我的groovy-2.0.8二进制文件损坏了,还是版本2引入了一些根本不同的东西,但是,当我将groovy-1.8.9设置为我的路径时,我在尝试运行groovy脚本时不再得到错误。
我还发现上面的答案指出,你不能有“连字符或句号”作为误导和不正确的。
332nm8kg5#
尝试通过删除“\bin”来改变路径,我摆脱了它,它对我非常有效。
xwmevbvl6#
在基于Ubuntu的发行版上(您似乎正在使用unix-y的东西),
sudo apt install groovy
。qvtsj1bj7#
我得到了相同的错误消息,经过多次尝试和错误后发现,
GROOVY_HOME
变量没有正确设置。groovy
应用程序依赖于指向正确目录的GROOVY_HOME
路径,否则您将看到上面的错误。我看到上面的一个答案,建议从目录名中删除句点并将其添加到路径中。这将工作,但可以做一个更干净的方式使用符号链接。
点击下面的链接,或者点击我的总结:
https://www.packtpub.com/mapt/book/All%20Books/9781849519366/1/ch01lvl1sec11/Installing+Groovy+on+Linux+and+OS+X
1.创建一个名为
current
的符号链接,指向groovy的主目录(例如/usr/share/groovy/groovy-2.1.6
)。符号链接可以位于保存groovy-x.y.z目录的同一目录中。这种方法的优点是避免了PATH
中的无效字符,并且可以在升级后重定向到新版本的groovy。下面是一个假设groovy安装在/usr/share/groovy/
和groovy版本2.1.6中的示例。sudo ln -s /usr/share/groovy/groovy-2.1.6 current
1.使用新的符号链接在登录脚本中定义
GROOVY_HOME
变量(例如.profile
):export GROOVY_HOME=/usr/share/groovy/current
1.将
GROOVY_HOME/bin
添加到登录脚本中的PATH
变量:export PATH=$GROOVY_HOME/bin:$PATH
1.* 注意:* 最好在测试前注销并登录,以确保初始化脚本正确设置了环境变量
通过执行
groovy -v
进行测试我希望这对任何偶然发现这个链接的人都有好处。
dvtswwa38#
我在windows操作系统中遇到了同样的问题。我终于找到了这个page,感谢作者,我解决了我的问题。简而言之,不要设置
GROOVY_HOME
env var。使用其他的东西。GROOVY_DIR
,然后在PATH
中设置%GROOVY_DIR%\bin
。嘣!Groovy开始工作了。rks48beu9#
以下所有命令均失败:
但在这之后,我尝试了不同的方法
工作:)
顺便说一句,有趣的是,没有人能解释如何在Linux/MacOS上正确地进行手动安装