jython编译java代码并执行,jython编译java,下面的代码片段演示jyt


下面的代码片段演示jython如何编译java代码并执行:

import jythonc, sysdef java(code, force=0):    """compile code snippet and return imported class"""    codelines=code.split(";")    for line in codelines:        if line.find("class")!= -1:            classname=line[line.find("class"):].split()[1]            break    try:        oldcode=open(classname+".java").readlines()    except:        oldcode=""    print >> open(classname+".java","w") ,code    code=open(classname+".java").readlines()    if(oldcode!=code or force!=0):        retcode,retout,reterr=jythonc.javac.compile([classname+".java",])        if retcode!=0:            raise RuntimeError, reterr    return sys.builtins["__import__"](classname)if __name__=="__main__":    java("""    // this is the embedded java code    public class inlined_java {        public static void main() {            System.out.println("Hello World from jython!!!");        }    }    """,force=1).main()

使用上面的脚本可以方便的动态生成java类,并使用生成的类来执行需要的方法。

评论关闭