我是一个java初学者,我使用的是eclipse3.4,我想通过控制台接收一段代码,然后程序执行这段代码,注意我是要让程序执行我手动输入的这段代码,例如我输入 
public class Lianxi{ 
pubilc static void main(String[] args) { 
System.out.println("我爱编程!"); 


然后控制台接收后,会把它看成一个主类,而不是字符串,然后将其执行,并输出结果,如果有那位高人能帮我解决,那就太感谢了!!! 
在线等候佳音……

解决方案 »

  1.   

    在控制台输出的结果就是:我爱编程!
    java执行时先从main函数开始啊
      

  2.   

    java6可以直接调用编译器功能.
    http://www.ibm.com/developerworks/cn/java/j-lo-jse64/
      

  3.   

    可以自己实现
    不过稍微麻烦一些
    我给个思路吧
    你可以通过io把标准输出里的东西装入一个后缀名为java的文件里
    可以参考日志的写法
    然后在自己的程序里写一个自动编译执行的后缀名为bat的批处理文件
    其中可能用到反射机制
    程序的最后执行这个bat文件就可以了。
    这是我的想法,仅供参考
    可行性应该为75%
    当然,自己没写过,只能是预计了
    其中可能还会有一些非常麻烦的问题
    最后我只能说:兄弟,自求多福吧~~
    呵呵~
      

  4.   

    http://www.ibm.com/developerworks/cn/java/j-lo-jse64/index.html
    JDK 6.0以上支持编这种译器 API
      

  5.   

    import java.io.File;
    import java.io.PrintStream;public class ComplierTest {
        public static void main(String[] args) throws Exception {
            PrintStream ps = new PrintStream(new File("c:\\HelloWorld.java"));
            ps.println("import java.io.IOException;");
            ps.println("public class HelloWorld {");
            ps.println("    public static void main(String[] args) {");
            ps.println("        System.out.println(\"Hello World\");");
            ps.println("        try {");
            ps.println("            System.in.read();");
            ps.println("        } catch (IOException e) {");
            ps.println("            e.printStackTrace();");
            ps.println("        }");
            ps.println("    }");
            ps.println("}");
            
            ps = new PrintStream(new File("c:\\complier.bat"));
            ps.println("javac c:\\HelloWorld.java");
            
            Runtime.getRuntime().exec("cmd.exe /c start c:\\complier.bat");
            
            ps = new PrintStream(new File("c:\\run.bat"));
            ps.println("c:");
            ps.println("cd c:\\");
            ps.println("java HelloWorld");
            
            Runtime.getRuntime().exec("cmd.exe /c start c:\\run.bat");
        }
    }
      

  6.   

    不过首先要配置好java环境变量
    不过应该用jdk1.6来做这种事情更好...
      

  7.   

    首先要执行这段代码就要有个main方法,怎么会再去执行你写的main方法呢
      

  8.   

    你可以通过控制台接受到你输入的那个串.再反射出一个JAVA类来.在通过这个JAVA类来实现它的一些方法
      

  9.   

    一个方法:写一个程序,接受输入,写入记事本,然后把生成的记事本当作java文件来运行,不知道可不可以
      

  10.   

    Runtime.getRuntime().exec("cmd.exe /c start c:\\complier.bat"); 
    Runtime.getRuntime().exec("cmd.exe /c start c:\\run.bat"); 
    建立一个输入流,把从键盘键入的代码保存到相应的文件中,用Runtime的exe方法编译文件,编译结果可存在一个输入流中,运用Runtime的exec方法执行编译后得到的文件,输出到建立另一个输出流中,
      

  11.   

    孙鑫录像上讲过 args参数是来传递指令 ,有这个例子,具体做法好像是写了一个空的println,然后在控制台直接输入 类名+指令运行 如 Lianxi 我爱编程;