2009-05-04 6 views

Antwort

1

Zumindest auf Linux groovy GroovyConsole ist ein Script den folgenden Befehl hat:

startGroovy groovy.ui.Console "[email protected]" 

startGroovy selbst ist ein Skript, das Java beginnt. Innerhalb des startGroovy-Skripts sollten Sie in der Lage sein, Ihren Klassenpfad zu ändern und die fehlenden Bibliotheken hinzuzufügen.

Von startGroovy:

startGroovy () { 
    CLASS=$1 
    shift 
    # Start the Profiler or the JVM 
    if $useprofiler ; then 
     runProfiler 
    else 
     exec "$JAVACMD" $JAVA_OPTS \ 
      -classpath "$STARTER_CLASSPATH" \ 
      -Dscript.name="$SCRIPT_PATH" \ 
      -Dprogram.name="$PROGNAME" \ 
      -Dgroovy.starter.conf="$GROOVY_CONF" \ 
      -Dgroovy.home="$GROOVY_HOME" \ 
      -Dtools.jar="$TOOLS_JAR" \ 
      $STARTER_MAIN_CLASS \ 
      --main $CLASS \ 
      --conf "$GROOVY_CONF" \ 
      --classpath "$CP" \ 
      "[email protected]" 
    fi 
8

In Linux haben Sie auch

/usr/share/groovy/conf/groovy-starter.conf 

Hier können Sie Ihre spezifischen Libs hinzufügen:

# load user specific libraries 
load !{user.home}/.groovy/lib/*.jar 
load /home/squelsh/src/neo4j-community-1.4.M03/lib/*.jar 
load /home/squelsh/src/neo4j-community-1.4.M03/system/lib/*.jar 

Hoffe, es hilft, hatte lange suchen zu finden (

6

Wenn Sie nur die JARs zum Klassenpfad hinzufügen möchten, kopieren Sie sie (oder symbolisieren sie) zu ~/.groovy/lib (oder %USER_HOME%/.groovy/lib unter Windows).

Wenn Sie möchten, dass die tatsächlichen import Anweisungen jedes Mal ausgeführt werden, wenn Groovy Console gestartet wird, bearbeiten Sie die Datei groovy-starter.conf wie von Squesh vorgeschlagen.

2

Sie können ein externes Groovy-Skript schreiben, das alle Importe ausführt, ein GroovyConsole-Objekt erstellt und die run() -Methode für dieses Objekt aufruft.

Siehe auch http://groovy.codehaus.org/Groovy+Console#GroovyConsole-EmbeddingtheConsole

Zum Beispiel: start.groovy

import groovy.ui.Console; 

import com.botkop.service.* 
import com.botkop.service.groovy.* 

def env = System.getenv() 
def service = new ServiceWrapper(
    userName:env.userName, 
    password:env.password, 
    host:env.host, 
    port:new Integer(env.port)) 

service.connect() 

Console console = new Console() 
console.setVariable("service", service) 
console.run() 

Von einem Shell-Skript rufen Sie die groovy ausführbare es mit dem groovigen Skript bereitstellt:

#!/bin/bash 

if [ $# -ne 4 ] 
then 
    echo "usage: $0 userName password host port" 
    exit 10 
fi 

export userName=$1 
export password=$2 
export host=$3 
export port=$4 

export PATH=~/apps/groovy/bin:/usr/bin:$PATH 
export CLASSPATH=$(find lib -name '*.jar' | tr '\n' ':') 

groovy start.groovy 

Der Code in GroovyConsole kann nun die in start.groovy vorgenommenen Importe sowie die mit der setVariable-Methode erstellten und übergebenen Variablen ('service' im Beispiel) verwenden le).