java - 如何使用 Nailgun Server 启动 Groovy 脚本(或 Java 类)

标签 java groovy jvm nailgun

我正在开发一个经常启动的 Groovy shell 脚本(执行相当小的任务),因此我需要一个快速的 JVM 启动时间。为此,我尝试使用 Nailgun 启动它.

我已将 Nailgun 安装为 Ubuntu 软件包。然后我修复了 argument bug通过将 /usr/bin/ng-server 链接到 /usr/bin/ng。我正在像这样启动 Nailgun-Server:

java -cp /usr/share/java/nailgun-0.7.1.jar -server com.martiansoftware.nailgun.NGServer

我有一个名为 hello.groovy 的简单虚拟 Groovy 脚本,用于测试 nailgun-server:

#!/usr/bin/env groovy
def sayHello() {
  println("Hello Groovy!");
}

sayHello();

我用 groovyc 将文件编译成 hello.class。

现在我想在 Nailgun 服务器中启动该脚本。我天真的做法是:

ng hello
ng hello.sayHello

但我得到的只是 ClassNotFoundExceptions:

java.lang.ClassNotFoundException: hello
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at com.martiansoftware.nailgun.NGSession.run(Unknown Source)

那么,使用 Nailgun 服务器启动我的 Groovy 脚本的正确方法是什么?我也很欣赏一些关于如何使用 Nailgun 的好网站/教程,真的很难获得任何关于如何使用它的信息......

编辑:

/p>

最佳答案

终于明白了。我只是不明白我必须首先将所有需要的类添加到 Nailgun 类路径(this SO question 给了我最后的提示)。

首先,将 Groovy 添加到类路径中:

ng ng-cp /usr/share/java/groovy-all.jar

然后将包含 Groovy 脚本/Java 类的目录添加到类路径中,在我的例子中是:

ng ng-cp /home/$USER/tools/groovy

现在我可以像这样使用 Nailgun 运行我的 Groovy 脚本:

ng hello

关于java - 如何使用 Nailgun Server 启动 Groovy 脚本(或 Java 类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6761054/

相关文章:

grails - 在GORM中创建树状结构

java - JVM Attach API 虚拟机。 "Attach"是什么意思?

jvm - 桌面上的 JVM 是否使用 JIT 编译?

java - XML遍历查找节点名

java - 仅提供 key 的 Java 中的 Openssl -aes-256-cbc

groovy - 如何调试 intellij gdsl 文件?

macos - 为什么即使它在我的 PATH 上,Groovy 也找不到该程序?

java - 无法使用 ServerSocket.socketBind 分配请求的地址

java - Java 中的 "java.lang.ArrayIndexOutOfBoundsException"错误

java - 附加到 CipherOutputStream - AES/CTR/NoPadding (Java)