Ing*_*her 3 java groovy jvm nailgun
我正在开发一个经常启动的Groovy shell脚本(执行相当小的任务),因此我需要一个快速的JVM启动时间.为了达到这个目的,我试图用Nailgun推出它.
我已经安装了Nailgun作为Ubuntu包.然后,我固定的说法错误的链接/usr/bin/ng-server
来/usr/bin/ng
.我正在启动Nailgun-Server,如下所示:
java -cp /usr/share/java/nailgun-0.7.1.jar -server com.martiansoftware.nailgun.NGServer
Run Code Online (Sandbox Code Playgroud)
我有一个名为hello.groovy的简单虚拟Groovy脚本,只是为了测试nailgun-server:
#!/usr/bin/env groovy
def sayHello() {
println("Hello Groovy!");
}
sayHello();
Run Code Online (Sandbox Code Playgroud)
我用groovyc将文件编译为hello.class.
现在我想在Nailgun服务器中启动该脚本.我这样做的天真方法是:
ng hello
ng hello.sayHello
Run Code Online (Sandbox Code Playgroud)
但我得到的只是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)
Run Code Online (Sandbox Code Playgroud)
那么,使用Nailgun服务器启动Groovy脚本的正确方法是什么?我也很欣赏一些关于如何使用Nailgun的好网站/教程,很难获得如何使用它的任何信息......
编辑:
我还要感谢使用带有纯Java类的nailgun的完整示例(包括如何使用ng调用特定类),因为我也无法使用任何Java类.
终于明白了.我只是不明白我必须首先将所有需要的类添加到Nailgun类路径中(这个问题给了我最后的提示).
首先,将Groovy添加到类路径:
ng ng-cp /usr/share/java/groovy-all.jar
Run Code Online (Sandbox Code Playgroud)
然后将包含Groovy脚本/ Java类的目录添加到类路径中,在我的例子中:
ng ng-cp /home/$USER/tools/groovy
Run Code Online (Sandbox Code Playgroud)
现在,我可以使用Nailgun运行我的Groovy脚本,如下所示:
ng hello
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1750 次 |
最近记录: |