网站建设资讯

NEWS

网站建设资讯

java代码动态生成技术 java运行时动态生成类

java动态生成方法

可以的,我说说大概思路,很简单,你自己具体实现吧,把代码写给你没意义的: 1.将你这段字符串输出到一个文件里,用Java类文件的方式命名。 2.调用外部javac命令将该文件编译。 3.用类加载器(ClassLoad)动态加载新的class文件并用Class.forName()注册该类,然后就可以正常使用了。 上面的每一步都能在baidu中找到实现方法,自己发挥吧。

10年积累的做网站、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有建邺免费网站建设让你可以放心的选择与我们合作。

求采纳

Java动态生成代码

可以的,我说说大概思路,很简单,你自己具体实现吧,把代码写给你没意义的:

1.将你这段字符串输出到一个文件里,用Java类文件的方式命名。

2.调用外部javac命令将该文件编译。

3.用类加载器(ClassLoad)动态加载新的class文件并用Class.forName()注册该类,然后就可以正常使用了。

上面的每一步都能在baidu中找到实现方法,自己发挥吧。

Java代码的静态编译和动态编译中的问题是什么

Java代码正常是静态编译成字节码,由对应平台的JVM加载执行,静态编译无法动态扩展功能。动态编译有两种方式实现:

从源码编译,需要调用Java Compiler,程序需要运行于JDK(而不是JRE)之上。

动态字节码生成技术(如CGLib、ASM)创建类。

动态编译可以简化代码,增强类功能,但也带来了代码复杂度,线上不易维护。

可以解释一下java生成动态文档是什么意思吗

(Write once, run anywhere) 目标Java类文件包含字节代码同平台JVM所使用Java字节代码仅文件形式存于磁盘通网络式载存于内存JVM类加载器负责包含字节代码字节数组(byte[])定义Java类某些情况能需要态 Java字节代码或已Java字节代码进行修改候需要用本文要介绍相关技术首先介绍何态编译Java源文件

态编译Java源文件

般情况发员都程序运行前编写完全部Java源代码并且功编译些应用说Java源代码内容运行刻才能确定候需要态编译源代码Java字节代码再由JVM加载执行典型场景算竞赛线评测系统(PKU JudgeOnline)允许用户传Java代码由系统台编译、运行并进行判定态编译Java源文件使用做直接程序调用Java编译器

 JSR 199引入Java编译器API使用JDK 6通API态编译Java代码比面代码用态编译简单Hello World类该Java类代码保存字符串

 public class CompilerTest { 

  public static void main(String[] args) throws Exception {

  String source = "public class Main { public static void main(String[] args) {System.out.println(\"Hello World!\");} }"; 

  JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 

  StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); 

  StringSourceJavaObject sourceObject = new CompilerTest.StringSourceJavaObject("Main", source); 

  Iterable fileObjects = Arrays.asList(sourceObject); 

  CompilationTask task = compiler.getTask(null, fileManager, null, null, null, fileObjects); 

  boolean result = task.call(); 

  if (result) { 

用java如何用代码实现动态生成JLabel

String[] str={"名字1","名字2","名字3"};

for(int i=0;iv.length;i++){

JLabel lbl = new JLabel(str[i]);

int x=i%4*80+40; //4个一排 间隔80 第一个x从40开始

int y=i/4*40+40;

lbl[i].setBounds(x, y, 80, 20);

panel.add(chb[i]);

}

在Java中,有没有动态生成方法的...办法???

这个也能实现的,这就得利用java的动态编译,java中可以利用代码临时生成java文件,并且执行编译,运行,但这个有一点麻烦,还要用到java中的反映机制.

apache的commons-beanutils包中就有这样的方法,hibernate中映射类中的get与set方法是存在的.最好不要用临时生成java文件,动态编译.


标题名称:java代码动态生成技术 java运行时动态生成类
网站路径:http://cdweb.net/article/hggjgd.html