- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java动态编译-JDK自带工具类
Java动态编译-JDK自带工具类pile;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.IOException;importjava.io.OutputStream;importjava.io.PrintWriter;importjava.io.StringWriter;.URI;import .URL;.URLClassLoader;importjava.util.ArrayList;importjava.util.List;importjavax.tools.Diagnostic;importjavax.tools.DiagnosticCollector;importjavax.tools.FileObject;importjavax.tools.ForwardingJavaFileManager;importjavax.tools.JavaCompiler;importjavax.tools.JavaFileObject;importjavax.tools.JavaFileObject.Kind;importjavax.tools.SimpleJavaFileObject;importjavax.tools.StandardJavaFileManager;importjavax.tools.ToolProvider;publicclassMemoryCompiler {staticclassMemoryClassLoaderextendsURLClassLoader {MemoryClassLoader() {super(new URL[0]);}public Class? defineMemoryClass(String name, byte[] b) {returnsuper.defineClass(name, b, 0, b.length);}}publicstaticvoid main(String[] args) throwsInstantiationException,IllegalAccessException {StringWritersw = newStringWriter();PrintWriterpw = newPrintWriter(sw);pw.println(public class A{);pw.println(public String toString(){);pw.println(return \Test\;);pw.println(});pw.println(});Class? c = getInstance().compile(A, sw.toString());System.out.println(c);Object o = c.newInstance();System.out.println(o);}privatestaticMemoryCompilerinstance = newMemoryCompiler();privateMemoryClassLoaderclassloader = newMemoryClassLoader();private String classpath = System.getProperty(java.class.path);private String encoding = System.getProperty(file.encoding);publicstaticMemoryCompilergetInstance() {returninstance;}privateMemoryCompiler() {ClassLoadercl = MemoryClassLoader.class.getClassLoader();if (clinstanceofURLClassLoader) {StringBuildersb = newStringBuilder();for (URL url : ((URLClassLoader) cl).getURLs()) {String p = url.getFile();sb.append(p).append(File.pathSeparator);}this.classpath = sb.toString();}}public Class? compile(final String classname, final String source) {return compile(classname, source, null);}public Class? compile(final String classname, fin
您可能关注的文档
最近下载
- “胶黏剂与涂料”实验课教改探讨——以南京林业大学为例-来源:教育教学论坛(第2021024期)-河北教育出版社、花山文艺出版社.pdf VIP
- 高三英语二轮复习读后续写高分句式+强化亮点句式翻译课件.pptx VIP
- 2025年山东发展投资控股集团有限公司人员招聘笔试备考试题及答案详解(易错题).docx VIP
- 弟子规全文带拼音排版好可直接打印.doc VIP
- 聚合氯化铝形成原理与生产方法总结.docx VIP
- 《古陶瓷修复》课件——3.陶瓷文物病害图的绘制.pptx VIP
- 2025年山东发展投资控股集团有限公司人员招聘笔试备考试题有完整答案详解.docx VIP
- 光固化功能树脂的合成与应用.pptx VIP
- 高空作业夜间施工方案.docx VIP
- (人教版2025新教材)七年级英语下册全册单词默写打印(默写版+背诵版).pdf
文档评论(0)