JAVA中动态编译的简单使用
一、引用库
pom文件中申明如下:
<dependencies><!-- https://mvnrepository.com/artifact/junit/junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!-- https://mvnrepository.com/artifact/com.github.henryhuang/dynamiccompiler --><dependency><groupId>com.github.henryhuang</groupId><artifactId>dynamiccompiler</artifactId><version>0.1.0</version></dependency></dependencies>
二、测试代码
import com.github.henryhuang.dynamiccompiler.ClassGenerator; import org.junit.Test;import java.lang.reflect.Method;public class HelloTest {@Testpublic void test() {ClassGenerator builder = new ClassGenerator(".");try {Class<?> testclass = builder.generate("TestClass", "" +"public class TestClass{" +" public static String execute(String[] args){" +" System.out.println(\"Test!\"); " +" return args[0];" +" }" +"}");Method method = testclass.getMethod("execute", String[].class);for (int i = 0; i < 100; i++) {String[] params = {"宋柱柱" + i, "def"};Object result = method.invoke(null, (Object) params);System.out.println("result:" + result);}} catch (Exception ex) {ex.printStackTrace();}} }
三、运行结果
![](/assets/blank.gif)
JAVA中动态编译的简单使用相关推荐
- 【java】深入理解Java的动态编译
文章目录 1.概述 2. 前提 3. 基本原理# 4. JDK动态编译 4.1 实现JavaFileObject 4.2 实现ClassLoader 4.3 实现JavaFileManager 4.4 ...
- Java中动态加载字节码的方法 (持续补充)
文章目录 Java中动态加载字节码的方法 1.利用 URLClassLoader 加载远程class文件 2.利用 ClassLoader#defineClass 直接加载字节码 2.1 类加载 - ...
- JAVA中一维数组的简单使用!
JAVA中一维数组的简单使用! 一.数组的概述 1.数组的常见概念: 数组名 下标(或索引) 元素 数组的长度 2. 数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括 基本数据类型和引用 ...
- Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信
本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...
- Java中利用socket实现简单的服务端与客户端的通信(基础级)
在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...
- java中List Stream的简单使用
java中List Stream的简单使用 一,api入门案例 实体类 public class Person {private int id;private String name;private ...
- java编译时注解_简单介绍 Java 中的编译时注解
1. 前言 上一篇 主要介绍了什么是 注解 (Annotation) 以及如何读取 运行时注解 中的数据, 同时用注解实现了简单的 ORM 功能. 这次介绍另一部分: 如何读取 编译时注解 ( Ret ...
- 在Java中动态传参调用Python脚本
最近,又接触到一个奇葩的接口,基于老板不断催促赶时间的情况下,在重写java接口和复用已有的python脚本的两条路中选择了后者,但是其实后者并没有好很多,因为我是一个对python的认识仅限于其名称 ...
- Java中的编译错误和运行错误如何分辨
昨天小白作者经历了一场冷酷的考试洗礼,4.5个编译错误和运行错误的判断彻底把我整蒙圈了.相信有很多小伙伴跟我一样蒙圈,不过经过不懈的努力查找与思考,总结了自己的一些想法跟大家分享一下~~ 在解 ...
最新文章
- 环形链表找入口,真的太妙了
- 梯度下降法的三种形式-BGD、SGD、MBGD
- 用 Flask 来写个轻博客 (11) — M(V)C_创建视图函数
- PHP算法 《树形结构》 之 伸展树(1) - 基本概念
- Hibernate调用存储过程
- 中小企业CRM评测-八百客
- 前端基础进阶(十):面向对象实战之封装拖拽对象
- 联合、枚举和类型别名 - C++快速入门13
- 对列表中k之前和之后的元素分别进行逆序
- [转载] python数据类型转换
- CPU 漏洞补丁对内核性能影响:4.15 比 4.11 快 7-9%
- Html5带来了什么?
- Swift 5 UIStackView中添加自动换行的Label
- Vue项目中安装axios
- autoit java_AutoIt3客户端和Java服务器端TCP通信
- 梦幻西游玩家最多的服务器,都说你是《梦幻西游》老玩家,这5个著名服务器你知道几个?...
- Perl/Tk入门学习(上)
- 大数据工程师面试考题
- echarts实现饼图阴影,改变饼图的颜色,改变引导线的颜色
- 极大似然估计详解,写的太好了!
热门文章
- getdate函数_PHP getdate()函数与示例
- 线性代数 向量长度_用户定义长度的向量| 使用Python的线性代数
- Java GregorianCalendar computeFields()方法与示例
- Python中的a+=a和a=a+a的区别(认真看完后,我相信你一定会回来感谢我的)
- react中引入html文件,在react中怎么引用js
- Linux下文件的多进程拷贝
- Arbitrage——判断正环Bellman-Ford/SPFA
- SPOJ - QTREE3Query on a tree again!——树链剖分
- 数据结构--双链表的创建和操作
- System V IPC之消息队列