2 votes

Le script Groovy ne peut pas importer de code Java

Le problème que j'ai est plus important, mais je vais simplifier le concept qui pose problème.

Je travaille sur Ubuntu.

Voici ma structure de répertoire :

~/monrépertoire

--/groovy

--/mesfichiersjava

J'ai un script, script.groovy, qui se trouve à l'intérieur de ~/monrépertoire/groovy et un fichier java appelé Bonjour.java qui se trouve à l'intérieur de ~/monrépertoire/mesfichiersjava. script.groovy contient ce qui suit :

#!/usr/bin/env groovy

package groovy;
import myjavafiles.Hello;

println("hello");

Bonjour.java contient ceci :

package myjavafiles;
public class Hello {
   public Hello() {
       System.out.println("hello");
   }
}

J'ai essayé de lancer :

$./script.groovy

aussi bien que

$groovy script.groovy

Mais je reçois seulement une erreur, "unable to find class".

Voici les étapes que j'ai prises pour résoudre cette erreur :

i. définir CLASSPATH = ~/monrépertoire, cela n'a pas fonctionné.

ii. utilisé

$jar cf myjavafiles.jar myjavafiles

et placé myjavafiles.jar dans ~/.groovy/lib, cela n'a pas fonctionné.

iii. Comme mentionné ici, j'ai essayé de modifier groovy.script comme suit :

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

println("hello");

Cela n'a pas fonctionné non plus.

Autres informations potentiellement pertinentes

Si cela peut aider, j'utilise Ubuntu, Java 7 et Groovy 2.1.5

GROOVY_HOME=/opt/groovy/groovy-2.1.5/

et $GROOVY_HOME/bin est dans mon PATH

Je vous serais très reconnaissant pour toute aide.

1voto

tim_yates Points 63521

Changer script.groovy en :

package groovy
import myjavafiles.Hello

println "hello"

Compiler le code java avec:

javac myjavafiles/Hello.java

Ensuite exécuter

groovy groovy/script.groovy

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X