7
votes

Pourquoi Groovy n'utilise-t-il pas l'argument de classePath?

Invoquant un script groovy à l'aide de la préfixe de classePath comme suit fonctionne bien: xxx pré>

mais le modifiant pour utiliser la classePath arg ne doit pas: P>

- - - - xu.groovy
package stuff
def printIt(string) { println string }
- - - -

groovyc -d classes xu.groovy
groovy -cp classes -e "(new stuff.xu()).printIt('test')"  # fails
CLASSPATH=classes groovy -e "(new stuff.xu()).printIt('test')"  # works


0 commentaires

3 Réponses :


0
votes

C'est étrange. J'ai juste essayé de répéter votre problème expliqué, mais tout semble fonctionner correctement (j'ai fait des tests avec Groovy-version 1.8.6, 1.7.7 et 1.7.0 sur mon ordinateur Ubuntu).

Alors quelle version utilisez-vous et quel est votre système d'exploitation?

Dans le traqueur de bugs groovy, j'ai trouvé le bogue suivant: Option de ligne de commande pour classpath (- CP / - CLASSPATH) est cassé sur Windows . Mais ce bogue affecte simplement les anciennes versions de Groovy (1.5.2, 1.5.3 et 1.5.4). Donc, peut-être qu'une mise à niveau de Groovy aidera à résoudre votre problème ...

PS: Normalement, je voudrais juste commenter cela, mais malheureusement, je n'ai pas assez de points pour ce faire :).


4 commentaires

J'utilise Linux, Fedora 15. La version de Groovy Groovy version: 1.8.0 JVM: 1.6.0_22 .


@Mark Il n'est pas encore une version groovy 1.8.0 disponible sur le site officiel, je ne peux donc pas vous aider. J'ai aussi fait un test avec Groovy version 1.8.2, mais tout fonctionne bien. Je vous recommande donc de mettre à niveau Groovy. Les salutations


Avez-vous essayé d'ajouter un colis au script que vous avez testé? J'ai été capable de gérer avec succès -classpath ou classpath = ... Si je supprimez l'instruction Package et que tout ayez le niveau de package par défaut, mais dès que j'ajouterai Le trucs de paquet en haut et compilez, Groovy ne semble pas le trouver avec le -ClassPath arg. J'ai essayé cela sur une autre machine en cours d'exécution 1.8.4 et toujours le même problème. J'ai mis à jour ma question avec un exemple détaillé.


Je suis désolé, mais votre exemple (avec truc de paquet instruction) fonctionne bien sur ma machine ...



5
votes

Répondre à cela moi-même parce que j'ai trouvé une solution au problème.

J'utilisais les paquets Groovy par défaut de miam à Fedora, a toutefois trouvé de nombreux problèmes (erreurs de démarrage de Groovysh, etc., incapable de trouver un package JLONC, etc.), et ont totalement déménagé pour utiliser des versions téléchargées à partir de Codehaus.org et spécifier manuellement. Groovy_home et chemin d'édition pour invoquer un à la place téléchargée.

Maintenant, tous mes exemples fonctionnent comme prévu.


0 commentaires

4
votes

Je suis sur HSYS / Win32 + Groovy 2.2 RC1 et avez une autre torsion: xxx

mais xxx

pour une raison quelconque, Aucun de ce qui précède ne fonctionnerait dans mon cas.


0 commentaires