How do I auto load a database jar in Groovy without using the -cp switch?

后端 未结 5 1059
既然无缘
既然无缘 2020-12-03 00:12

I want to simplify my execution of a Groovy script that makes calls to an Oracle database. How do I add the ojdbc jar to the default classpath so that I can run:

<         


        
相关标签:
5条回答
  • 2020-12-03 00:31

    One way would be using @Grab in the code:

        @GrabConfig(systemClassLoader=true)
        @Grab('com.oracle:ojdbc6:12.1.0.2.0')
        Class.forName("oracle.jdbc.OracleDriver").newInstance()
    
    0 讨论(0)
  • 2020-12-03 00:33

    You could add the following shebang to the first line of your Groovy script:

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

    Then, mark the script executable:

    chmod u+x RunScript.groovy
    

    Now, running the script by itself will set the classpath automatically.

    ./RunScript.groovy
    
    0 讨论(0)
  • 2020-12-03 00:34

    Summarized from Groovy Recipes, by Scott Davis, Automatically Including JARs in the ./groovy/lib Directory:

    1. Create .groovy/lib in your login directory
    2. Uncomment the following line in ${GROOVY_HOME}/conf/groovy-starter.conf

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

    3. Copy the jars you want included to .groovy/lib

    It appears that for Groovy 1.5 or later you get this by default (no need to edit the conf), just drop the jars in the /lib dir.

    0 讨论(0)
  • 2020-12-03 00:37

    groovy is just a wrapper script for the Groovy JAR that sets up the Java classpath. You could modify that script to add the path to your own JAR, as well, I suppose.

    0 讨论(0)
  • 2020-12-03 00:42

    There are a few ways to do it. You can add the jar to your system's CLASSPATH variable. You can create a directory called .groovy/lib in your home directory and put the jar in there. It will be automatically added to your classpath at runtime. Or, you can do it in code:

    this.class.classLoader.rootLoader.addURL(new URL("file:///path to file"))
    
    0 讨论(0)
提交回复
热议问题