exec语句用来执行存储在字符串或文件中的Python语句,当时学java时就不断想,如果一个方法不断读取自己的内容然后去执行读取到的内容,那应该是一件很有意思的事情
今天学习Python时看到了exec,惊为神器,怎么会有这么好的方法,于是果断去实现自己的想法
下面是我的代码,欢迎批评指正
#!/usr/bin/python
import time
print('yes.i can')
time.sleep(1)
f = file('/home/t.py')
while True:line = f.readline()if(len(line)==1):breakelse:exec(line)
f.close()
先执行一条打印,然后再去休眠两秒,最后再读取自己文件的内容去执行,可以得到一个死循环
于是我在想java应该也有类似的功能。去网上搜还真找到了
package myPcg6;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Arrays;
import java.util.List;import javax.tools.JavaCompiler;
import javax.tools.SimpleJavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.ToolProvider;
import javax.tools.JavaCompiler.CompilationTask;public class CompilerTest { public static void main(String[] args) throws Exception { String source = "public class Main {" +"public static void main(String[] args) {" +"System.out.println(\"Hello World!\");" +"} " +"}"; JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); StringSourceJavaObject sourceObject = new CompilerTest.StringSourceJavaObject("Main", source); List
上面是某个大神的代码,http://www.cnblogs.com/fangwenyu/archive/2011/10/12/2209051.html,里面说的很详细,当然这只是工具,会用即可
从上面忽然想到,原来秋招时考试提交的代码大概就是这么处理的吧