动态编译实例代码。非常简单。

原创 2004年09月21日 09:50:00
动态编译实例代码。非常简单。我看也不用注解了吧。
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
import java.io.File;
 
public class CompileTest{
 static com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
 public static void main(String[] args){
  try{
   File file = File.createTempFile("RunTime",".java",new File(System.getProperty("user.dir"))); 
   String filename = file.getName();
   String classname = filename.substring(0,filename.indexOf('.'));
   PrintWriter out = new PrintWriter(new FileOutputStream(file));
   out.println("public class "+classname+"{");
   out.println("public static void main(String[] args){");
   out.println("System.out.println(/"Yes!/");");
   out.println("}}");
   out.flush();
   out.close();  
   String[] arg = new String[]{"-d",System.getProperty("user.dir"),filename};
   int status = javac.compile(arg); 
   Class cls = Class.forName(classname);
   Method main = cls.getMethod("main", new Class[]{String[].class} );
   main.invoke(null, new Object[] { new String[0] });
   file.delete(); 
   file = new File(classname+".class");
   file.delete();
  }catch(Exception e){e.printStackTrace();} 
  
 } 
}
作者:youngmean

java动态编译实现

本文主要实现java code 动态编译,并使用自定义的ClassLoader加载动态编译生成的字节码。1 代码DynamicCompile 类主负责调用JDK API 实现动态编译以及使用Class...
  • huangshanchun
  • huangshanchun
  • 2017年06月01日 21:55
  • 333

让C#语言充当自身脚本!——.NET中的动态编译

代码的动态编译并执行是一个.NET平台提供给我们的很强大的工具用以灵活扩展(当然是面对内部开发人员)复杂而无法估算的逻辑,并通过一些额外的代码来扩展我们已有 的应用程序。这在很大程度上给我们提供了另外...
  • clb929
  • clb929
  • 2016年05月12日 16:57
  • 5880

动态编译C#代码

项目开发中,有时候会使用到动态生成代码,然后根据动态生成的代码再执行相应的操作,C#提供了动态代码的编译,利用这个特性可以实现动态生成代码,然后执行代码。 直接上代码,c#版本[MenuI...
  • suifcd
  • suifcd
  • 2016年05月11日 19:46
  • 1213

【经典实例】利用C#反射动态编译代码,创建类的实例,并调用其成员

关键是以下内容有一些需要学习的地方。GenerateCode()函数动态生成编译代码,还有动态调用类的函数名。反射是.net中的高级功能之一,利用反射可以实现许多以前看来匪夷所思的功能,下面是我看了《...
  • wonsoft
  • wonsoft
  • 2010年01月16日 01:26
  • 4038

Java动态编译要慎用

动态编译一直是Java 的梦想,从Java 6 版本它开始支持动态编译了,可以在运行期直接编译.java 文件,执行.class,并且能够获得相关的输入输出,甚至还能监听相关的事件。 不过,我们...
  • softn
  • softn
  • 2016年05月31日 06:37
  • 673

Java学习之-动态编译-DynamicCompile_反射调用

一、动态编译 JAVA6.0引入了动态编译机制。动态编译的应用场景:      可以做一个浏览器端编写java代码,上传服务器编译和运行的在线评测系统,需要进行安全检查。     服务器动...
  • haitaofeiyang
  • haitaofeiyang
  • 2015年03月14日 22:37
  • 5366

Java之动态编译,静态编译简单理解和实例

开心一笑【年底是各种案件的高发期,我们去ATM取钱的时候,一定要注意遮挡,不要被陌生人看到你的余额,要不然啊,就,,,非常容易被人嘲笑。其实对于胖子来说,买衣服最简单了,都不用进去。直接就在门口问一句...
  • huangwenyi1010
  • huangwenyi1010
  • 2017年01月07日 09:44
  • 1998

动态编译执行C#代码

所谓动态代码执行,和脚本引擎有点类似。就是程序执行期从字符串或者文本文件中读取一段 C# 代码,在内存中动态编译成程序集,并创建相关类型实例执行相关方法。具体的实现可参考下面的代码。如需要生成程序集文...
  • daonidedie
  • daonidedie
  • 2008年03月07日 15:10
  • 537

Java动态编译执行

在某些情况下,我们可能需要动态生成java代码,通过动态编译,然后执行代码。JAVA API提供了相应的工具(JavaCompiler)来实现动态编译。下面我们通过一个简单的例子介绍,如何通过Java...
  • zleven
  • zleven
  • 2017年01月05日 16:18
  • 3792

动态生成java、动态编译、动态加载

曾经见过一个“规则引擎”,是在应用系统web界面直接编写java代码,然后保存后,规则即生效,我一直很是奇怪,这是如何实现的呢?实际这就好像jsp,被中间件动态的编译成java文件,有被动态的编译成c...
  • ValenCheng
  • ValenCheng
  • 2016年08月03日 16:40
  • 671
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态编译实例代码。非常简单。
举报原因:
原因补充:

(最多只允许输入30个字)