题目:开发一个工具类,该工具类提供一个eval方法,实现JavaScript中eval的函数的功能:
可以动态运行一行或多行代码。例如eval("System.out.println(\"aa\")"),将可以输出aa 。
找答案

解决方案 »

  1.   

    如果是java6,那么他自己内建支持javascript.查javadoc吧.如果是java5,就去找一个叫做rhino的项目,是mozilla的.:)
      

  2.   


    UPJDK6支持很多脚本语言了。rhino,是mozilla的js引擎,有Java 接口。
      

  3.   

    rhino是mozila的JS引擎的JAVA版但是LZ的意思好像是想自己实现一个解释器啊,那挺复杂的,需要一定的编译原理的知识
      

  4.   

    eval("System.out.println(\"aa\")")这里面 eval 的可 不是脚本..以前在网上看过别人用动态编译的就是程序中控制 产生一个新 xxxx.java 文件, 编译, 载入新类, 调用方法
      

  5.   

    http://topic.csdn.net/u/20091211/11/db748a1e-81ac-4c05-be6b-c435d4d0b636.html这个问题我在这个帖子里有完整代码说明,虽然和楼主的要求不是完全一样,但原理相同,都是实时的编译JAVA然后执行。感兴趣可以参考一下。
      

  6.   

    呵呵
    我已经写完了,7楼的贴给了我正确思路
    思路:创建一个临时文件,将eval()的参数包装成某类的某方法的实体,用IO把该类写入临时文件,然后动态编译该类,然后通过反射运行该类的方法,当运行完毕时,删除该临时文件