【问题标题】:Groovy script cannot import java codeGroovy 脚本无法导入 java 代码
【发布时间】:2013-06-22 09:46:43
【问题描述】:

我遇到的问题更大,但我会简化失败的概念。

我正在开发 Ubuntu。

这是我的目录结构:

~/我的目录

--/groovy

--/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 中,但这不起作用。

三。如here所述,我尝试修改groovy.script如下:

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

println("hello");

那也没用。

其他,可能相关

如果有帮助,我正在使用 Ubuntu、Java 7 和 Groovy 2.1.5

GROOVY_HOME=/opt/groovy/groovy-2.1.5/

并且 $GROOVY_HOME/bin 在我的路径中

如果有任何帮助,我将不胜感激。

【问题讨论】:

  • As Tim mentioned 你在一个包中声明你的 java 类,但试图从另一个包中导入它。

标签: groovy


【解决方案1】:

script.groovy 更改为:

package groovy
import myjavafiles.Hello

println "hello"

编译java代码:

javac myjavafiles/Hello.java

然后运行

groovy groovy/script.groovy

【讨论】:

  • 不知何故我犯了一个错误,没有包含正确的文件。我正在使用但未能使用的导入是 myjavafiles.Hello 我将尝试编译 java 代码。这是我每次都必须做的事情吗?有没有办法编译整个java文件目录?。
  • 如果你改变它,你将需要编译它。你试过javac myjavafiles/*.java吗?此外,您可能会考虑使用 gradle 之类的东西为您建造建筑物
  • 我编译了 Hello.java,生成了一个 Hello.class 文件。但是,当我尝试 groovy script.groovy 时,它失败了。它似乎只在我在 ~/mydirectory 中时才有效,并且执行 groovy groovy/script.groovy。总而言之,它可以工作.. 但为什么必须这样运行呢?
  • Hello.class 文件在myjavafiles 中是吗?然后你跑了groovy groovy/script.groovy?
  • 重新阅读我上面的评论。我提交后立即编辑它。我想我做到了,但前提是以非常具体的方式完成。
猜你喜欢
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
相关资源
最近更新 更多