Search code examples
javaeclipsebytecodeeclipse-jdtcompilationunit

Generate bytecode from Eclipse's CompilationUnit


I am not working on an Eclipse plug-in project; however, I use an external library that generates an instance of org.eclipse.jdt.core.dom.CompilationUnit. Is there a way to generate Java bytecode from it?

Some searching revealed that CompilationUnit's are typically built by registering a custom builder for the Eclipse project, then letting eclipse invoke it... but I couldn't find any way to leverage that for a stand-alone application.


Solution

  • The Partial Program Analysis for Java tool can, theoretically, do this, by using the PPAUtil class:

    PPAUtil.compileCU(myCompilationUnit, baseOutputFolder)
    

    Though in practice it only expects CompilationUnit instances it creates by itself with PPAUtil.getCU(file, options, reqName, false), so I don't know if it will work on a CompilationUnit instance not produced this way.