8

サードパーティのライブラリを使用するグルーヴィーなスクリプトがあります。アプリケーションを開いてスクリプトを実行しようとするたびに、適切なライブラリをインポートする必要があります。

ライブラリをインポートせずに、GroovyConsole を開いてアプリケーションを実行できるようにしたいと考えています。

4

5 に答える 5

10

Linuxでは、あなたも持っています

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

ここで、特定のライブラリを追加できます。

# 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

これを見つけるのに長い時間をかけて検索する必要がありました (:

于 2011-09-08T15:02:34.630 に答える
6

JAR をクラスパスに追加するだけの場合は、JAR を~/.groovy/lib(または%USER_HOME%/.groovy/libWindows に) コピー (またはシンボリック リンク) します。

importGroovy Console が起動するたびに実際のステートメントを実行する場合は、Squelsh の提案に従って groovy-starter.conf ファイルを編集します。

于 2011-10-17T12:23:40.527 に答える
3

すべてのインポートを行い、GroovyConsole オブジェクトを作成し、このオブジェクトで run() メソッドを呼び出す外部 Groovy スクリプトを作成できます。

http://groovy.codehaus.org/Groovy+Console#GroovyConsole-EmbeddingtheConsoleも参照してください。

例: 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()

シェル スクリプトから、groovy スクリプトを提供する groovy 実行可能ファイルを呼び出します。

#!/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

GroovyConsole のコードは、start.groovy で行われたインポートと、setVariable メソッドで作成および渡された変数 (例では「サービス」) を利用できるようになりました。

于 2012-10-15T05:46:56.913 に答える