如何配置 GroovyConsole 以便我不必在启动时导入库?

发布于 2024-07-19 02:10:54 字数 107 浏览 5 评论 0原文

我有一个使用第三方库的常规脚本。 每次我打开应用程序并尝试运行我的脚本时,我都必须导入正确的库。

我希望能够打开 GroovyConsole 并运行我的应用程序,而无需导入库。

I have a groovy script that uses a third party library. Each time I open the application and attempt to run my script I have to import the proper library.

I would like to be able to open GroovyConsole and run my application without having to import the library.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

萌吟 2024-07-26 02:10:54

在 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

希望它有帮助,不得不搜索很长时间才能找到这个(:

In Linux you also have

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

Here you can add your specific libs:

# 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

Hope it helps, had to search long time to find this (:

他夏了夏天 2024-07-26 02:10:54

如果您只想将 JAR 添加到类路径,请将它们复制(或符号链接)到 ~/.groovy/lib (或 %USER_HOME%/.groovy/lib视窗)。

如果您希望每次 Groovy Console 启动时都运行实际的 import 语句,请按照 Squelsh 的建议编辑 groovy-starter.conf 文件。

If you just want to add the JARs to the classpath, copy (or symlink) them to ~/.groovy/lib (or %USER_HOME%/.groovy/lib on Windows).

If you want the actual import statements to run every time Groovy Console starts, edit the groovy-starter.conf file as suggested by Squelsh.

在巴黎塔顶看东京樱花 2024-07-26 02:10:54

至少在 Linux 上,groovy GroovyConsole 是一个具有以下命令的脚本:

startGroovy groovy.ui.Console "$@"

startGroovy 本身是一个启动 Java 的脚本。 在 startGroovy 脚本中,您应该能够修改类路径并添加缺少的库。

从Groovy开始:

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" \
            "$@"
    fi

At least on Linux groovy GroovyConsole is a Script has the Following command:

startGroovy groovy.ui.Console "$@"

startGroovy itself is a script which starts Java. Within the startGroovy script you should be able to modify your classpath and add the missing librarys.

From 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" \
            "$@"
    fi
顾冷 2024-07-26 02:10:54

您可以编写一个外部 Groovy 脚本来执行所有导入、创建 GroovyConsole 对象并调用该对象的 run() 方法。

另请参阅 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()

从 shell 脚本调用 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 方法(示例中的“service”)。

You can write an external Groovy script that does all the imports, creates a GroovyConsole object, and calls the run() method on this object.

See also http://groovy.codehaus.org/Groovy+Console#GroovyConsole-EmbeddingtheConsole

For example: 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()

From a shell script call the groovy executable providing it with the groovy script:

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

The code in GroovyConsole can now make use of the imports done in start.groovy, as well as of the variables created and passed with the setVariable method ('service' in the example).

许久 2024-07-26 02:10:54

如果您使用的是 Mac,我强烈建议您使用 SDKMAN 来管理 Groovy 安装。

通过 SDKMAN 安装后,您可以修改 ~/.sdkman/candidates/groovy/current/bin/groovy/conf/groovy-starter.conf。 每当您启动 Groovy 控制台会话时,您在此处添加的包都会在运行时自动导入。 您需要将它们添加到以下示例中标记的部分下:

    # load user specific libraries
    load !{user.home}/.groovy/lib/*.jar
    load !{user.home}/.groovy/lib/additional_package.jar

If you are on a Mac, I would highly recommend using SDKMAN to manage Groovy installations.

Once installed via SDKMAN, you can modify ~/.sdkman/candidates/groovy/current/bin/groovy/conf/groovy-starter.conf. Packages you add here will be automatically imported at runtime whenever you start a Groovy Console session. You would want to add them under the section labelled in the example below:

    # load user specific libraries
    load !{user.home}/.groovy/lib/*.jar
    load !{user.home}/.groovy/lib/additional_package.jar
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文