从groovy中访问一个java类

rdm*_*ler 10 java groovy

我有一个简单的java类:

package test;
class Hello {
  public static void main(String[] args) {
    System.out.println("Hi");
  }
}
Run Code Online (Sandbox Code Playgroud)

我做了什么

javac Hello.java
Run Code Online (Sandbox Code Playgroud)

问题:现在我想从一个groovy脚本访问这个类(access.groovy)...

import test.*
Hello.main(null)
Run Code Online (Sandbox Code Playgroud)

groovy -cp . access.groovy
Run Code Online (Sandbox Code Playgroud)

会导致一个MissingPropertyException.我究竟做错了什么?

Mic*_*rdt 14

您的类Hello需要声明为public才能从其他包中访问.作为一种动态语言,Groovy无法识别这样的错误,最终会找到一个名为的变量Hello.

使用通配符导入通常是个坏主意; 在这种情况下,使用import test.Hello;会给你一个更好的错误信息.