作者kentyeh (kent)
看板java
标题[投稿123]Dynamic Java
时间Fri Sep 27 01:55:08 2013
### 作业系统需求 ###
Windows,理论上 Linux 应该也可以。
### 执行步骤 ###
1.安装好JDK 1.6 +
2.撰写Submit123.java存放到硬碟,例如 x:\ (widnows) 或 ~/ (linux)下,
Submit123.java内容如下
import java.io.File;
import java.io.FileWriter;
import java.lang.reflect.Method;
import java.util.Arrays;
import javax.tools.JavaCompiler;
import javax.tools.StandardJavaFileManager;
import javax.tools.StandardLocation;
import javax.tools.ToolProvider;
public class Submit123 {
public static void main(String[] args) throws Exception {
File sourceFile = new File("./Output123.java");
FileWriter writer = new FileWriter(sourceFile);
writer.write("public class Output123{ \n"
+ " public static void main(String[] args) {\n"
+ " char[] ch = new char[]{'1','2','3'};\n"
+ "
System.out.println(Integer.parseInt(String.valueOf(ch)));\n"
+ " }\n"
+ "}");
writer.close();
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager =
compiler.getStandardFileManager(null, null, null);
fileManager.setLocation(StandardLocation.CLASS_OUTPUT,
Arrays.asList(new File("./")));
compiler.getTask(null, fileManager, null, null, null,
fileManager.getJavaFileObjectsFromFiles(Arrays.asList(sourceFile))).call();
fileManager.close();
//sourceFile.deleteOnExit();
Class params[] = {};
Object paramsObj[] = {};
Class class123 = Class.forName("Output123");
Method main = class123.getDeclaredMethod("main", args.getClass());
Object[] passedArgs = { args };
main.invoke(null, passedArgs);
}
}
3.开启Dos视窗或Terminator,cd到 x: 或 ~ 并执行命令
javac Submit123.java
4.执行命令,产出 Output123.class 并执行
java Submit123
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 223.142.162.170
1F:推 PsMonkey:违反了修改後的活动办法...... 真是抱歉 Orz 09/27 09:01