我需要在服务器上用的。。js是客户端口的或者说我需要输入java源代码的方式能运行此源代码。。

解决方案 »

  1.   

    在实际问题中碰到过,不过我的System.out.println(\"action is test\")”;
    相当于一个变量,即:
       String aa="hello world!";
       String bb="abc";
       String cc="123";
       String print_str1="aa,cc";
       String print_str2="bb,cc"
    我想使 
         out.println(print_str1) 打印出hello world!123
         out.println(print_str2) 打印出abc123
    不知道怎么处理才会得到这种效果!关注中...
      

  2.   

    可以用java的底层反射机制,Class.forName(String className);你取出System这一段字符串传给这个方法,然后根据out这段字符串,找到System的成员变量out,然后再找到它的方法。
      

  3.   

    mydreamkyle(mydreamfly) :
    能简单说个例子吗。。我对反射机制不太了解。你提示一下。或者给个例子大家看,感激不金兄弟祝大家:新年快乐:)呵呵:)
      

  4.   

    搜索一下,beanshell可能满足你想实现的功能。
      

  5.   

    chxinfo(linzi)的问题解答
    public class Test {    public static void main(String[] args)
            throws Exception {
            if(args.length <1) {
                System.out.println("Usage: Test someword");
                System.out.println("Example: Test aa,bb");
                System.exit(0);
            }
            String sentence = args[0];
            WordLib wl = new WordLib();
            java.lang.reflect.Field[] fields = WordLib.class.getDeclaredFields();
            java.util.Hashtable ht = new java.util.Hashtable(fields.length);
            for(int i=0; i<fields.length; i++) {
                ht.put(fields[i].getName(), fields[i].get(wl));
            }        StringBuffer sb = new StringBuffer();
            java.util.StringTokenizer st = new java.util.StringTokenizer(sentence, ",");
            while(st.hasMoreTokens()) {
                String word = st.nextToken();
                if(ht.containsKey(word)) {
                    sb.append(ht.get(word));
                } else {
                    sb.append(word);
                }
            }
            System.out.println(sb.toString());
        }
    }class WordLib {
        final String aa = "hello world!";
        final String bb = "abc";
        final String cc = "123";
    }
      

  6.   

    laizg (laizg) 的问题, 前面有人说在js中可以实现. 也就是个eval函数的功能.
    但是, 高级语言大多数都不支持eval函数, 据说是因为这个比较危险.
    退一步来看, 有限地支持是完全可以的. 反射机制可以实现.
    待我再试试.
      

  7.   

    看一下这个:http://dev.csdn.net/develop/article/15/15090.shtm。
      

  8.   

    beanshell这个开源项目可以实现。
      

  9.   

    给laizg (laizg)的解答, 不用反射的实现
    public class Test1 {
        public static void main(String[] args)
            throws Exception {
            if(args.length <1) {
                System.out.println("Usage: Test someword");
                System.out.println("Example: Test \"System.out.println(\\\"action is test\\\");\"");
                System.exit(0);
            }
            String sentence = args[0];
            java.io.File f = new java.io.File("DynamicExec.java");
            java.io.FileWriter fw = new java.io.FileWriter(f);
            fw.write("public class DynamicExec{public static void run(){");
            fw.write(sentence, 0, sentence.length());
            fw.write("}}");
            fw.close();
            Runtime.getRuntime().exec("javac DynamicExec.java").waitFor();
            Class.forName("DynamicExec").getMethod("run", null).invoke(null, null);
            f.delete();
            f = new java.io.File("DynamicExec.class");
            f.deleteOnExit();
        }
    }