2014-03-13 34 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