2011-09-27 13 views
5

Mam proste klasy Java:dostęp klasy Javy z poziomu Groovy

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

na którym robię

javac Hello.java 

Problem: Teraz chciałbym, aby uzyskać dostęp do tej klasy z groovy skryptu (access.groovy) ...

import test.* 
Hello.main(null) 

ale

groovy -cp . access.groovy 

spowoduje, że pojawi się MissingPropertyException. Co ja robię źle?

Odpowiedz

14

Twoja klasa Hello musi być zadeklarowana jako publiczna, aby była dostępna z innych pakietów. Jako dynamiczny język Groovy nie może zidentyfikować takich błędów i ostatecznie szuka zmiennej o nazwie Hello.

Generalnie złym pomysłem jest użycie symboli wieloznacznych; w takim przypadku użycie numeru import test.Hello; dałoby lepszy komunikat o błędzie.

+0

Wydaje mi się, że działa tak jak ja (Groovy 1.8.2), ale +1 za dobrą radę :-) –

+0

Wiedziałem, że to było głupie trywialne :-) Thanx! – rdmueller

+0

Używałem Groovy 1.7 ... – rdmueller

Powiązane problemy