to moumouren(某某人):
自己解释?类在实例化时好像解释不了呀~~~有没有一个解释执行的类的??很多其它语言都能实现的呀~~~~

解决方案 »

  1.   

    我想不可以吧?
    虽然很多adapter或listener之类的类,就是先配置在xml文件中,然后在使用的时候才new Instance的,或反射机制,但是执行一段字符串程序,好像不可以。
      

  2.   

    自己实现:
      1.生成java代码。把要执行的代码放入一个方法中,如public static void method1()。
     2.调用Compiler编译成class。
      3.用ClassLoader加载class,通过reflect调方法method1。
      

  3.   

    类似eval的功能肯定是没有的,但是会有折中的办法
      

  4.   

    可以使用一个第三方的包 : DynamicJava, 是开放源代码的, 放心用好啦.http://koala.ilog.fr/djava/ DynamicJava is a JavaTM source interpreter. It executes programs written in JavaTM, like described in the  Java Language Specification, in addition with scripting features. DynamicJava was written in pure JavaTM, is free and distributed with the source code.
      

  5.   

    to glassprogrammer():
    老大,能不能传我一份?你给的网址打不开呀
    mail: [email protected]...
      

  6.   

    哦,能打开了,网络问题,thx again...
      

  7.   

    to glassprogrammer():
    你有没有用过呢?
    我没有找到示例代码,不知道应该如何调用;
    同时你说源码开放,我没有找到相应的源码,它说的源码开放仅仅是指几个djava文件吗???
      

  8.   

    cbhyk()的方法已经已经很好了
    自己实现实现  不是很难
      

  9.   

    不需要,因为没人使用你的系统的时候还输入一段java代码.
      

  10.   

    BeanShell
    http://www.csdn.net/develop/article/15/15095.shtm// Eval.java
    import bsh.Interpreter;public class Eval
    {
    public static void main(String[] args) throws Exception
    {
    Interpreter i = new Interpreter();  // Construct an interpreter
    String s = "16*(9+5)+(8-3)/7";
    // Double d = new Double(i.eval(s).toString());
    // System.out.println("output is: " + d);
    System.out.println("output is: " + i.eval(s));
    }
    }
      

  11.   

    http://www.inria.fr/koala/djava/DynamicJava.zip 中间没有源码, 可是它下面那句:"The corresponding CVS snapshot." 就是指的源码啊, 下载地址:
    http://www.inria.fr/koala/djava/DynamicJava-src.zip至于例子, 多看看文档吧.BeanShell 也是不错的