安装Groovy
最近我下载了Groovy-2.3.6,并尝试在Linux系统上安装它。我听从老师的指示。我设置了GROOVY_HOME变量安装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
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代码(例如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