如何从命令行使用“java”调用groovy

2022-09-03 17:56:52

我必须向一些只安装了java的用户提供一些时髦的代码(没有grooy,没有$groovy_home等)。我试图从命令行调用groovy,但我没有运气。这是我的蝙蝠文件:

java -classpath .;lib;bin;bin-groovy introspector.AclCollector

这是我的例外:

Exception in thread "main" java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
       at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Caused by: java.lang.ClassNotFoundException: groovy.lang.GroovyObject
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        ... 12 more
Could not find the main class: introspector.AclCollector.  Program will exit.

有人知道吗?我在 \lib dir 中有 'groovy-all-1.6-beta-1.jar'。


答案 1

这里有另一个从Java调用的Groovy应用程序的例子(在本例中,从蚂蚁,但一般的想法是相同的)。

java -cp [...];%GROOVY_HOME%/embeddable/groovy-all-1.5.4.jar;[..]

正如frankowyer所提到的,你有一个确切的时髦jar,明确地列在java的类路径参数上。

由于您的客户端没有特殊的环境变量,因此只需将 替换为以下各项的完整路径:%GROOVY_HOME%/...


答案 2

我认为您需要在类路径中显式列出时髦的jar


推荐