import jythonc, sys
def 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()