Groovy脚本无法导入java代码

Groovy脚本无法导入java代码,groovy,Groovy,我面临的问题更大,但我将简化失败的概念 我正在Ubuntu上工作 以下是我的目录结构: ~/mydirectory --/棒极了 --/myjavafiles 我有一个脚本script.groovy,它位于~/mydirectory/groovy中,还有一个名为Hello.java的java文件,它位于~/mydirectory/myjavafiles中。script.groovy具有以下内部功能: #!/usr/bin/env groovy package groovy; import my

我面临的问题更大,但我将简化失败的概念

我正在Ubuntu上工作

以下是我的目录结构:

~/mydirectory

--/棒极了

--/myjavafiles

我有一个脚本script.groovy,它位于~/mydirectory/groovy中,还有一个名为Hello.java的java文件,它位于~/mydirectory/myjavafiles中。script.groovy具有以下内部功能:

#!/usr/bin/env groovy

package groovy;
import myjavafiles.Hello;

println("hello");
Hello.java有以下功能:

package myjavafiles;
public class Hello {
   public Hello() {
       System.out.println("hello");
   }
}
我试过跑步:

$./script.groovy
以及

$groovy script.groovy
但我只得到一个错误,“找不到类”

以下是我为修复此错误所采取的步骤:

一,。设置CLASSPATH=~/mydirectory,这不起作用

二,。使用

$jar cf myjavafiles.jar myjavafiles
并将myjavafiles.jar放在~/.groovy/lib中,这不起作用

iii.如前所述,我尝试修改groovy.script如下:

#!/bin/bash
//usr/bin/env groovy
package groovy;
import myjavafiles.Hello;

println("hello");
这也不起作用

其他,可能相关

如果有什么帮助的话,我正在使用Ubuntu、Java7和Groovy2.1.5

GROOVY_HOME=/opt/GROOVY/GROOVY-2.1.5/

$GROOVY_HOME/bin在我的路径中


非常感谢您的帮助。

script.groovy更改为:

package groovy
import myjavafiles.Hello

println "hello"
使用以下代码编译java代码:

javac myjavafiles/Hello.java
然后跑

groovy groovy/script.groovy

您在一个包中声明java类,但试图从另一个包中导入它。不知何故,我犯了一个错误,没有包含正确的文件。我正在使用但未能使用的导入是myjavafiles。您好,我将尝试编译java代码。这是我每次都要做的事吗?有没有办法编译一个完整的java文件目录?如果你改变它,你需要编译它。您是否尝试过
javacmyjavafiles/*.java
?另外,您可能会考虑使用类似的方法为您构建我编译了Hello.java,它生成了一个Hello.class文件。然而,当我尝试groovy script.groovy时,它失败了。它似乎只在我位于~/mydirectory并且执行groovy/script.groovy时才起作用。总之,它是有效的。。但是为什么必须这样运行呢?
Hello.class
文件位于
myjavafiles
是吗?然后运行了
groovy-groovy/script.groovy
?请重新阅读我上面的评论。我一提交就编辑了它。我想我已经成功了,但只有用一种非常具体的方式。