需求:
需要利用Java程序,来调用计算机本身的黑窗口,来将特定的Java文件编译成对应的字节码文件。
实现思路:
通过调用Java的Runtime类,每个 Java 应用程序都有一个 Runtime
类实例,使应用程序能够与其运行的环境相连接。
通过 getRuntime
方法获取当前运行时。而通过查找doc可以发现,还可以通过流的方式获取执行成功/失败输出到控制台的信息。
实现代码:
1 public class CompileJava {
2 public static String rootDir = "/Users/tujietg/java/Eclipse-WorkSpace-dxMall/shw/";
3 public void CompileJavaMethod(String fileName) { 4 try { 5 Runtime rt = Runtime.getRuntime(); 6 // windowscd /Users/tujietg/Desktop/ && java HelloWorld 7 String command = "javac " + "Task.java"; 8 Process proc = rt.exec(command, null, rootDir)); 9 InputStream stderr = proc.getErrorStream(); 10 InputStreamReader isr = new InputStreamReader(stderr); 11 BufferedReader br = new BufferedReader(isr); 12 String line = null; 13 System.out.println("<ERROR>"); 14 while ((line = br.readLine()) != null) 15 System.out.println(line); 16 System.out.println("</ERROR>"); 17 // int exitVal = proc.waitFor(); 18 // System.out.println("Process exitValue: " + exitVal); 19 } catch (Throwable t) { 20 t.printStackTrace(); 21 } 22 } 23 } 24
总结:
自己对Java的Runtime类,还是不是非常的熟练,自己还需要多多练习,多给自己找需求,然后通过查阅博客或者文档想着办法来实现。