2008-10-31 7 views

Répondre

10

de Recettes succincts Groovy, par Scott Davis, automatiquement, y compris JARs dans le répertoire ./groovy/lib:

  1. Créer .groovy/lib en votre répertoire de connexion
  2. Décommentez la ligne suivante dans $ {} GROOVY_HOME /conf/groovy-starter.conf

    load !{user.home}/.groovy/lib/*.jar

  3. Copiez les pots que vous souhaitez inclure à .groovy/lib

Il semble que pour Groovy 1.5 ou version ultérieure, vous obtenez ceci par défaut (pas besoin de modifier la conf), juste laisser tomber les pots dans le/lib dir.

+0

Je ne sais pas si ce serait préférable cependant. Il y a des moments où je préfère utiliser le "classloader par défaut" de java. Dans ce cas, je peux mettre jars dans jre/lib/ext pour être automatiquement chargé dans le classloader par défaut. – djangofan

0

groovy est juste un script d'emballage pour le Groovy JAR qui définit le chemin de classe Java. Vous pourriez modifier ce script pour ajouter le chemin à votre propre JAR, aussi, je suppose.

5

Il y a plusieurs façons de le faire. Vous pouvez ajouter le fichier jar à la variable CLASSPATH de votre système. Vous pouvez créer un répertoire appelé .groovy/lib dans votre répertoire personnel et y placer le fichier jar. Il sera automatiquement ajouté à votre classpath lors de l'exécution. Ou bien, vous pouvez le faire dans le code:

this.class.classLoader.rootLoader.addURL(new URL("file:///path to file")) 
+0

Le chargement dynamique du fichier JAR ne fonctionne pas pour moi à moins que j'instancie également dynamiquement toutes les classes dans le fichier JAR. Par exemple, si MyClass est dans le JAR, je dois construire comme ça. def = myObj Class.forName (« com.whatever.MyClass ») newInstance() Ainsi, il est beaucoup mieux que d'inclure la Fichier JAR quelque part dans les répertoires groovy-starter.conf, à moins qu'il y ait un moyen de contourner cela que je ne connais pas. – seansand

0

Vous pouvez ajouter le shebang suivant à la première ligne de votre script Groovy:

#!/usr/bin/env groovy -cp ojdbc5.jar 

Ensuite, marquer le script exécutable:

chmod u+x RunScript.groovy 

Maintenant, l'exécution du script par lui-même régler la classpath automatiquement.

./RunScript.groovy 
Questions connexes