打字猴:1.7004397e+09
1700439700
1700439701 //编译参数,类似于javac<options>中的options
1700439702
1700439703 List<String>optionsList=new ArrayList<String>();
1700439704
1700439705 //编译文件的存放地方,注意:此处是为Eclipse工具特设的
1700439706
1700439707 optionsList.addAll(Arrays.asList(”-d”,”./bin”));
1700439708
1700439709 //要编译的单元
1700439710
1700439711 List<JavaFileObject>jfos=Arrays.asList(jfo);
1700439712
1700439713 //设置编译环境
1700439714
1700439715 JavaCompiler.CompilationTask task=cmp.getTask(null, fm, null,
1700439716
1700439717 optionsList, null, jfos);
1700439718
1700439719 //编译成功
1700439720
1700439721 if(task.call()){
1700439722
1700439723 //生成对象
1700439724
1700439725 Object obj=Class.forName(clsName).newInstance();
1700439726
1700439727 Class<?extends Object>cls=obj.getClass();
1700439728
1700439729 //调用sayHello方法
1700439730
1700439731 Method m=cls.getMethod(methodName, String.class);
1700439732
1700439733 String str=(String)m.invoke(obj,“Dynamic Compilation”);
1700439734
1700439735 System.out.println(str);
1700439736
1700439737 }
1700439738
1700439739 }
1700439740
1700439741 }
1700439742
1700439743 //文本中的Java对象
1700439744
1700439745 class StringJavaObject extends SimpleJavaFileObject{
1700439746
1700439747 //源代码
1700439748
1700439749 private String content=””;
[ 上一页 ]  [ :1.7004397e+09 ]  [ 下一页 ]