`
gshxsyq
  • 浏览: 20105 次
社区版块
存档分类
最新评论

java动态编译源代码并调用其中的方法

    博客分类:
  • java
阅读更多

 

package proxy;

import java.lang.reflect.Constructor;
import java.net.URL;
import java.net.URLClassLoader;
import javax.tools.JavaCompiler;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;

public class MyCompiler {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
		//编译java源代码
		JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
		StandardJavaFileManager fileManager = compiler.getStandardFileManager(
				null, null, null);
		String fileName = System.getProperty("user.dir")+"/src/proxy/Hello.java";
		Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjects(fileName);
		JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager,
				null, null, null, compilationUnits);
		Boolean success = task.call();
		
		fileManager.close();
		System.out.println("Success: " + success);
		//load into memory and instance
		URL[] urls = new URL[]{new URL("file:/"+ System.getProperty("user.dir")+"/src")};
		System.out.println(urls[0]);
		URLClassLoader ucl = new URLClassLoader(urls);
		Class c = ucl.loadClass("proxy.Hello");
		System.out.println(c);
		Constructor constructor = c.getConstructor(null);
		Hello o = (Hello)constructor.newInstance(null);
		//调用具体的方法
		o.test();
	}

}
 

 

分享到:
评论

相关推荐

    JAVA加密 保护源代码 防止反编译的工具

    而且大多数不是很好用,这样自己辛苦开发出来的程序很容易被人反编译过来而据为己有,一般情况下,大多数的人都是用混编器(java obfuscator)来把开发出来的程序进行打乱以达到没有办法来反编译观看源代码,...

    jni.rar,Java调用VC编译dll接口源代码

    Java调用VC编译dll接口源代码,对于数类型也有说明

    Java开发技术大全(500个源代码).

    invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名问题示例 onlyTest.java 对象传值示例 otherClass.java 从类的外部访问对象的成员 ...

    Java反编译工具JD-GUI

    反编译代码分析:通过JD-GUI,您可以分析Java类文件的反编译代码,以了解其中的实现细节、方法调用以及数据结构等信息。这对于调试和理解代码的工作非常有帮助。 代码审查:JD-GUI允许您检查Java类的源代码,这对于...

    JAVA上百实例源码以及开源项目源代码

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象...

    JD-GUI 是一个独立图形界面的Java源代码“.class”文件反编译工具 您可以浏览重建的源代码,JD-GUI的即时访问方

    在源代码审计或者进行漏洞挖掘,有时会碰到war包,jar包,或者直接打包的class文件,需要通过反编译进行源代码审计.以下是个人常用的几种java反编译工具,个人比较推荐使用IDEA自带的反编译组件,直接调用JD-GUI组件进行反...

    java源码包---java 源码 大量 实例

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象...

    安卓反编译文件所用到的工具及方法

    反编译Apk得到Java源代码 首先要下载两个工具:dex2jar和JD-GUI,前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。 具体步骤: 1.首先将apk文件,将后缀改为...

    java范例开发大全源代码

    第1篇 Java编程基础  第1章 Java开发环境的搭建(教学视频:9分钟) 2  1.1 理解Java 2  1.2 搭建Java所需环境 3  1.2.1 下载JDK 3  1.2.2 安装JDK 4  1.2.3 配置环境 5  1.2.4 测试JDK配置...

    java调用kettle的依赖包

    java调用kettle的依赖包。调试代码的过程中一个个找出来的,分享给大家 kettle java 依赖包

    java或android调用阿里云的人脸比对服务源代码

    本项目基于Android的源代码调用阿里云的人脸识别服务,你只需要把sk_id和sk_secrect改成自己的,就可以了。基于Gradle3.3编译通过。

    基于javacv实现图像拼接的源代码

    javacv3.1.0版本实现了图像拼接,底层采用了opencv3.1.0的dll,将dll拷贝到C:\windows\system32目录,工程采用netbeans开发,肯定可以编译运行

    《Android系统源代码情景分析》

    《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 ...

    java源码包2

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...

    java源码包4

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...

    JAVA上百实例源码以及开源项目

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象...

    java源码包3

    Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字  Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...

    c调用java源码-C-IDE-By-Java:这是非常简单的C/C++ide。它只是调用gcc编译器(来自代码块)来编译源代码。首先,在环境

    调用java源码C / C ++ IDE 这是非常简单的C ...它只是调用gcc编译器(来自代码块)来编译源代码。 首先,将代码块mingw bin路径添加到环境变量中很重要(Windows系统属性)。 然后使用Netbeans打开该项目

    JSP动态网页制作基础培训教程源代码.rar

    读者可根据相应的使用说明直接使用这些源代码。 一、基础知识部分 此部分是指文件夹名为第1~9章中的内容(如表1),这些是书中介绍JSP相关知识的源代码。文件的命名规则与书中相应源代码文件名一致。读者可将相关...

Global site tag (gtag.js) - Google Analytics