使用java“没有这样的文件或目录”运行groovy编译的类的Bash错误

时间:2013-10-15 17:27:44

标签: java bash groovy

我有:简单的Groovy脚本:Hello.groovy

    >cat Hello.groovy
    println "Hello ${args[0]}, may Groovy be with you."

工作正常:

    >groovy Hello "Luke Skywalker"
    Hello Luke Skywalker, may Groovy be with you.

我在运行已编译的代码时遇到了麻烦。

    >groovyc Hello.groovy
    >java -cp %GROOVY_HOME%/embeddable/groovy-all-2.1.7.jar;. Hello "Luke Skywalker"
    bash: Hello: No such file or directory

(我删除了也吐出的使用信息..)

是什么给出的?

以下是其他一些信息:

    >uname -a
    Linux adminuser-VirtualBox 3.8.0-31-generic #46-Ubuntu SMP Tue Sep 10 20:03:44 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

    >file /usr/lib/jvm/default-java/jre/bin/java
    /usr/lib/jvm/default-java/jre/bin/java: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x498bbdda6cbaab7d2c671cf18d378c31021f9ea5, stripped

    >groovy -v
    Groovy Version: 2.1.7 JVM: 1.7.0_25 Vendor: Oracle Corporation OS: Linux

1 个答案:

答案 0 :(得分:1)

你需要在类路径中使用冒号,而不是在问题中使用分号:

java -cp %GROOVY_HOME%/embeddable/groovy-all-2.1.7.jar:. Hello "Luke Skywalker"

使用分号,您正在运行两个命令:

java -cp %GROOVY_HOME%/embeddable/groovy-all-2.1.7.jar

其次是

. Hello "Luke Skywalker"

这一行导致了问题,因为bash无法找到名为Hello的文件来源