Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用groovy代码执行Java类_Java_Grails_Groovy - Fatal编程技术网

使用groovy代码执行Java类

使用groovy代码执行Java类,java,grails,groovy,Java,Grails,Groovy,我正在尝试使用groovy脚本执行java.class文件: def sout = new StringBuffer(), serr = new StringBuffer() def proc = "java ${fileName}".execute() proc.consumeProcessOutput(sout, serr) proc.waitFor() println "out> $sout err> $serr" 它给出错误:err>

我正在尝试使用groovy脚本执行java.class文件:

    def sout = new StringBuffer(), serr = new StringBuffer()
    def proc = "java ${fileName}".execute()
    proc.consumeProcessOutput(sout, serr)
    proc.waitFor()
    println "out> $sout err> $serr"
它给出错误:
err>错误:无法找到或加载主类cle47d1d78d99a44a8ba01f0bc7612ad16
(使用uuid生成的类名)。但当我在bash中执行它时,它会给出正确的输出。我检查了filename,pwd并确保.class文件存在于groovy尝试执行命令的文件夹中

我可以运行其他命令,也可以使用以下命令成功编译.java文件:

def proc = "javac ${file.path}".execute()

请建议。

${fileName}的值是多少。我认为它包含像“ABC.java”这样的值。其中,您必须使用命令“java${className}”


包也是必需的

${fileName}的值是多少。我认为它包含像“ABC.java”这样的值。其中,您必须使用命令“java${className}”


包也是必需的

您是如何编译java文件的?您是否声明了执行代码的任何主要方法?您分叉JVM(运行单独的java程序)有什么特殊原因吗?在初始类路径中加载java类或使用URLClassLoader加载它(然后使用反射运行main方法)会快得多@Danyalsandelo我通过groovy使用javac命令编译了.java文件,然后我试图执行它。@Benoît我试图自动化评估java代码的过程。您是如何编译java文件的?您是否声明了执行代码的任何主要方法?您分叉JVM(运行单独的java程序)有什么特殊原因吗?在初始类路径中加载java类或使用URLClassLoader加载它(然后使用反射运行main方法)会快得多@Danyalsandelo我通过groovy使用javac命令编译了.java文件,然后我正在尝试执行它。@Benoît我正在尝试自动化评估java代码的过程。您可以共享您尝试执行的类吗?您可以共享您尝试执行的类吗
Use:

java ${className}

ex:
If com.abc.ABC is the class containing the main function
java com.abc.ABC