使用groovy代码执行Java类
我正在尝试使用groovy脚本执行java.class文件:使用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>
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