2011-09-27 17 views
5

Ho una semplice classe Java:accedere a una classe Java dall'interno Groovy

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

su cui faccio un problema

javac Hello.java 

: Ora vorrei accedere a questa classe da uno script Groovy (access.groovy) ...

import test.* 
Hello.main(null) 

ma

corrisponderà a MissingPropertyException. Che cosa sto facendo di sbagliato?

risposta

14

La classe Hello deve essere dichiarata pubblica per essere accessibile da altri pacchetti. Come linguaggio dinamico, Groovy non è in grado di identificare tali errori e finisce per cercare una variabile denominata Hello.

In genere è una cattiva idea utilizzare le importazioni con caratteri jolly; in questo caso, l'utilizzo di import test.Hello; ti avrebbe dato un messaggio di errore migliore.

+0

In realtà sembra funzionare per me come è (Groovy 1.8.2) ma +1 per un buon consiglio :-) –

+0

Sapevo che era sciocco banale :-) Grazie! – rdmueller

+0

Stavo usando Groovy 1.7 ... – rdmueller

Problemi correlati