2014-03-13 35 views
0

我有一个包含这个java代码“的System.out.println(” Hello World“的!),文本文件(example.txt中);如何执行从txt文件恢复的java代码?

我如何执行从文本文件中检索这个java代码

感谢:X

+0

@Newble我有一个疑问关于你的example.txt文件有任何主要的类。 – Sathiyaraj

+1

据我所知,java是一种静态语言,你的代码不完整,所以无法编译和执行... – longkai

+0

你不能这样做。我能想象的唯一事情就是你解析整个类并将其存储在某个地方,以便以后可以运行该类。但我不确定你是否可以加载这个文件。 –

回答

0

您可以创建类从文件example.txt中读取和TMP Java文件写入和从任何Java代码访问此tmp文件

首先创建和Test.java类

public class Test{ 
public static void excute(){ 
} 
} 

int该类example.text串将在EXCUTE方法写TE来执行

public class ExcuteStringCode { 

/** 
* @param args 
* @throws IOException 
*/ 
public static void main(String[] args) throws IOException { 
    // TODO Auto-generated method stub 
    try { 
     System.setProperty("java.home", "C:\\Program Files\\Java\\jdk1.7.0_21"); 
     BufferedReader br=new BufferedReader(new FileReader("d:\\example.txt")); 
     PrintWriter writer=new PrintWriter("d:\\Test.java"); 
     writer.write("public class Test{\n"); 
     writer.write("public static void excute(){\n"); 
     String reader=""; 
     System.out.println("start"); 
     while((reader=(br.readLine()))!=null){ 
      writer.write(reader+"\n"); 
     } 
     writer.write("}\n}"); 

     br.close(); 
     writer.close(); 

     JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); 
     System.out.println(compiler); 
     int b=compiler.run(null, null, null,"d:\\Test.java"); 
     Test testme=new Test(); 
     testme.excute(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

然后写的javac ExcuteStringCode.java 然后写java ExcuteStringCode