我在Ubuntu (14.04)上,刚刚安装了GVM的最新版本(1.3.13)。然后,我使用它安装Grails (2.3.7)、Groovy (2.2.2)和Gradle (1.11)。
Groovy和Gradle似乎安装得非常好(我可以执行它们的SDK命令,如groovyc等)。但是,每当我从任何目录执行任何Grails命令时,整个终端的屏幕都会清除,暂停片刻,然后重新绘制命令行提示符。命令永远不会被执行。几个月前,在Nabble上,另一个用户报告了一个非常相似的问题。
从shell中,如果我执行echo $GRAILS_HOME,就会得到:
/home/myuser/..gvm/grails/current
如果我使用echo $PATH,我确实会看到/home/myuser/.gvm/grails/current/bin在我的系统路径上。
于是,我决定深入挖掘,然后去$GRAILS_HOME。这是一个指向/home/myuser/.gvm/grails/2.3.7的符号链接。因此,当我去那里时,我看到一个普通的Grails安装,包括一个bin目录。当我进入那个bin dir时,我看到:
grails-debug
grails.bat
grails-debug.bat
startGrails.bat
startGrails
grails我打开grails (一个shell脚本)并看到:
#!/bin/sh
trap "reset" EXIT
trap "reset" INT
trap "reset" TERM
DIRNAME=`dirname "$0"`
. "$DIRNAME/startGrails"
startGrails org.codehaus.groovy.grails.cli.GrailsScriptRunner "$@"我对此作了如下修改:
#!/bin/sh
trap "reset" EXIT
trap "reset" INT
trap "reset" TERM
echo "1..."
sleep 2s
DIRNAME=`dirname "$0"`
echo "2...dirname is $DIRNAME"
sleep 8s
. "$DIRNAME/startGrails"
echo "3..."
sleep 2s
startGrails org.codehaus.groovy.grails.cli.GrailsScriptRunner "$@"然后从shell中保存/退出并运行grails help。这是我的产出:
1...
2...dirname is /home/zharvey/.gvm/grails/current/bin输出的最后一行("2...dirname是.“)暂停2秒,然后我的屏幕清除(就像我发出了一个clear命令),我的提示符重新出现。在任何时候,我的实际命令(grails help)都不会实际执行或生成输出。因此,错误存在的确切位置似乎是:
. "$DIRNAME/startGrails"这一行到底在做什么,为什么会导致脚本失败?
我的问题
发布于 2014-08-18 09:24:22
我有一个类似的问题,我的问题是我设置JAVA_HOME变量不正确。虽然JAVA确实在我的机器上工作过,但它的设置如下:
JAVA_HOME=/usr/lib/jvm/jdk1.8.0/bin
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH显然,当我更仔细地观察它时,我发现了我的错误,并将上述设置为:
JAVA_HOME=/usr/lib/jvm/jdk1.8.0
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH只是细微的不同,但是它现在确实正确地工作了,并且命令
grails并没有像上面解释的那样默默地失败。
希望能帮上忙!
发布于 2014-04-22 22:58:11
我通过一点(非常痛苦)的调试就发现了这一点。
在GRAILS_HOME/bin/startGrails ( POSIX脚本)中,有一行检查是否正确设置了JAVA_HOME。
我没有按照推荐的方式安装JDK。我不喜欢使用apt-get 来为我配置Java。我喜欢自己下载JDK,并自己将JAVA_HOME 添加到 PATH 中。这是问题的根源。。
由于JAVA_HOME没有在我的Ubuntu机器上正确地设置(因为我选择了手动/劝阻的方法而不是apt-get方法),所以startGrails脚本失败了(请注意,来吧,Grails团队.)因为它不能访问JAVA_HOME
if [ -z "$JAVA_HOME" ] ; then
die "JAVA_HOME environment variable is not set"所以我就把这个改成:
if [ -z "$JAVA_HOME" ] ; then
export JAVA_HOME="<value of my $JAVA_HOME var as defined in ~/.bashrc>"我要放弃这件事,因为我不是唯一遇到这件事的人。
发布于 2014-10-15 09:25:40
也面临着同样的问题。我的解决方案是sudo update-alternatives --install /usr/bin/startGrails startGrails /opt/grails-2.4.3/bin/startGrails 2
https://stackoverflow.com/questions/23221903
复制相似问题