在linux上配置groovy环境时,出现了两个问题,一个是在执行groovy xx.groovy时无法找到不同包下的其他类,可能的问题出在执行目录上,如我的项目名demo,则我执行成功的方式是在demo下的src文件夹里执行groovy com/xx/xx.groovy;还有个问题就是unable to resolve class,即导入的外部包无法正常被导入。因为我的外部包放在项目demo的lib文件夹下,在执行时就会出现找不到jar包的情况,此时可将上述的执行语句改为groovy -cp ../lib/*.jar com/xx/xx.groovy 即可了。当然能顺利执行这些命令的前提是JAVA_HOME,CLASSPATH,GROOVY_HOME,PATH都配置好。尽管这些命令可以直接通过控制台解决问题,但是有时会遇到很郁闷的情况,比如在使用jar包时会报一些乱码编译错误的异常,后来整了很长时间终于通过shell命令解决了问题,具体如下:在demo的项目里新建一个run.sh的文件,内容如下形式:
CLASSPATH=../src/
for jar in `ls lib/*.jar`
do
CLASSPATH="$CLASSPATH:""../$jar"
done
cd src
$GROOVY_HOME/bin/groovy -cp $CLASSPATH \
-c UTF-8 \
"$@"
如果无法执行,则需要给予权限,输入命令chmod +x run.sh就可以了
在demo目录下执行以下命令:./run.sh com/test/TestTask.groovy 5 1.0 0.7 0 20 1 400 0
com文件夹是在demo项目的src目录下面的,test是com目录下的,后面的 5 1.0 0.7 0 20 1 400 0 是控制台传入的参数