如果你想在动态编译并加载了class后,能够用hibernate的数据访问接口以面向对象的方式来操作该class类,请参考这篇博文-http://www.cnblogs.com/anai/p/4270214.html
所谓动态编译,就是在程序运行时产生java类,并编译成class文件。
一、这里介绍两种动态编译java文件的方式。
第一种:使用Runtime执行javac命令
/** * 编译java类 * 使用Runtime执行javac命令 * @param name 类的全限定包名 不带后缀 例如com.test.Notice 而不要写成com.test.Notice.java * @throws java.io.IOException */ public static void javac(String name) throws IOException { String javaPackageName = name.replace(".",File.separator)+".java"; String javaAbsolutePath = classPath+javaPackageName; Process process = Runtime.getRuntime().exec("javac -classpath "+ jarAbsolutePath+ " " + javaAbsolutePath); try { InputStream errorStream = process.getErrorStream(); InputStreamReader inputStreamReader = new InputStreamReader(errorStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line = null; while ((line=bufferedReader.readLine()) != null){ System.out.println(line); } int exitVal = process.waitFor(); System.out.println("Process exitValue: " + exitVal); } catch (InterruptedException e) { e.printStackTrace(); } }