¿Cómo puedo cargar automáticamente un archivo jar de la base de datos en Groovy sin usar el interruptor -cp?
Pregunta
Quiero simplificar mi ejecución de un script Groovy que realiza llamadas a una base de datos Oracle. ¿Cómo agrego el jar ojdbc a la ruta de clase predeterminada para poder ejecutar:
groovy RunScript.groovy
en lugar de:
groovy -cp ojdbc5.jar RunScript.groovy
Solución
Resumido de Groovy Recipes , por Scott Davis, Incluyendo JAR automáticamente en el directorio ./groovy/lib :
- Cree
.groovy / lib
en su directorio de inicio de sesión -
Descomenta la siguiente línea en $ {GROOVY_HOME} /conf/groovy-starter.conf
load! {user.home} /. groovy / lib / *. jar
-
Copie los frascos que desea incluir en
.groovy/lib
Parece que para Groovy 1.5 o posterior obtienes esto de forma predeterminada (no es necesario editar la configuración), simplemente coloca los archivos en el directorio / lib.
Otros consejos
Hay algunas maneras de hacerlo. Puedes agregar el jar a la variable CLASSPATH de tu sistema. Puede crear un directorio llamado .groovy / lib en su directorio de inicio y colocar el jar allí. Se agregará automáticamente a su classpath en el tiempo de ejecución. O bien, puede hacerlo en código:
this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))
groovy
es solo un script de envoltorio para el Groovy JAR que configura el classpath de Java. Podrías modificar ese script para agregar la ruta a tu propio JAR, supongo.
Puedes agregar lo siguiente shebang a la primera línea de tu script Groovy :
#!/usr/bin/env groovy -cp ojdbc5.jar
Luego, marque el script ejecutable:
chmod u+x RunScript.groovy
Ahora, ejecutar el script por sí mismo establecerá la ruta de clase automáticamente.
./RunScript.groovy