作者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
推 PsMonkey:違反了修改後的活動辦法...... 真是抱歉 Orz 09/27 09:01