易截截图软件、单文件、免安装、纯绿色、仅160KB

Java版的实现JavaScript中的eval()函数

实现步骤:
1.自定义一个Java类,该Java类中定义一个方法来包含需要被运行的代码。
2.动态编译刚刚生成的Java源码,不在磁盘上生成源码,而是直接编译内存中的Java源码。
3.动态加载刚刚创建编译的Java二进制码,编译好的Java二进制码不是在磁盘上,而是放在内存中,并定义自己的类加载器,负责加载内存中的class文件。
4.通过反射运行前一步加载的类。
import java.util.Arrays;
import javax.tools.SimpleJavaFileObject;
import javax.tools.JavaFileObject;
import javax.tools.JavaCompiler;
import javax.tools.ToolProvider;
import javax.tools.DiagnosticCollector;
import java.net.URI;
/**
* Description:
* <br/>网站: <a href="http://www.crazyit.org" mce_href="http://www.crazyit.org">疯狂Java联盟</a>
* <br/>Copyright (C), 2001-2010, Leeyohn
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Leeyohn leeyohn@hotmail.com
* @version 1.0
*/
public class MyClassLoader
extends ClassLoader
{
@Override
public Class<?> findClass(String str) throws ClassNotFoundException
{
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
//用于诊断源代码编译错误的对象
DiagnosticCollector diagnostics = new DiagnosticCollector();
//内存中的源代码保存在一个从JavaFileObject继承的类中
JavaFileObject file = new JavaSourcefromString("Temp", str.toString());
Iterable compilationUnits = Arrays.asList(file);
//建立一个编译任务
JavaCompiler.CompilationTask task = compiler.getTask(null, null, null, null, null, compilationUnits);
//编译源程序
boolean result = task.call();
if (result)
{
return Class.forName("Temp");
}
return null;
}
}
class JavaSourcefromString extends SimpleJavaFileObject
{
private String name;
private String code;
public JavaSourcefromString(String name, String code)
{
super(URI.create("strin


相关文档:

用JAVA实现多线程(生产者与消费者问题)


public class MultiThread {
 public static void main(String[] args) {
  ProductStack box = new ProductStack("box");
  Producer p1 = new Producer(box, "p1");
  Producer p2 = new Producer(box, "p2");
  Producer p3 = new Producer(box, "p3");
 &nb ......

REST风格的Java MVC框架:WebWind简介

几天前,刚看了IBM Developerworks上某个技术大牛做的关于设计REST风格的Java MVC开发框架的文章,今天在Google Code上发现了一个基于Java的REST风格的MVC开发框架,取名WebWind

“WebWind是一个Java MVC框架。和常见的MVC框架如Struts、WebWork不同,WebWind天生支持用户友好的URL,让Web应用程序对搜索引擎更加 ......

java反射

package reflect;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Test {
 public static void main(String[] args) {
  try {
   Class c = Class.forName("reflect.Student");// 根据类的完整类名创建类象
    ......

Java学习资料汇总

1.Java学习网站:
Java中文世界论坛        http://www.chinajavaworld.com/index.jspa
Java世纪网              http://www.java2000.net/
Java 中文站            http://www.java-cn.com/
Java学习室      ......

JavaScript之正则

定义方法:
1、用构造函数RegExp
2、直接量,包含在一对(/)之间的字符
直接量字符:
字母数字字符——自身
\o——NULL字符
\t——制表符
\n——换行符
\v——垂直制表符
\f——换页符
\r——回车符 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号