• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::

            編譯Java程序:

            import java.io.FileNotFoundException;

            import java.io.PrintWriter;


            import com.sun.tools.javac.Main;


            public class Test {

                public static void main(String[] argv) throws FileNotFoundException {

                    PrintWriter writer = new PrintWriter("result.txt");

                    String[] options = { "/Users/Biao/Desktop/FilteredJList.java" };

                    Main.compile(options, writer);

                }

            }

            執(zhí)行Java程序:

            // Process proc = Runtime.getRuntime().exec(String.format("java %s", "FilteredJList"));

                private void run(String directory, String className, String[] args) {

                    try {

                        File classLoaderDirectory = new File(directory);

                        URL url = classLoaderDirectory.toURL();

                        URL[] urls = new URL[] { url };

                        ClassLoader loader = new URLClassLoader(urls);


                        Class clazz = loader.loadClass(className);


                        Method mainMethod = clazz.getMethod("main", String[].class);

                        // mainMethod.invoke(null, new Object[] { new String[] { /* args */}

                        // });

                        mainMethod.invoke(null, new Object[] { args });

                    } catch (Exception e) {

                        e.printStackTrace();

                    }

                }

             

            ================================分隔線================================

             

            JDK6.0中可以使用下面的方法:

            This example using the Java Compiler API introduced in JDK 1.6 to programmatically compile a Java class. Here we'll compile the Hello.java. The process of compiling can be start by obtaining a JavaCompiler from the ToolProvider.getSystemJavaCompiler().

            The simplest way to compile is by calling the run() method of the compiler and passing the first three arguments with null value. These three argument will use the default System.in,System.out and System.err. The final parameter is the file of the Java class to be compiled.

            When error happened during compilation process the non-zero result code will be returned. After the compile process you'll have the Hello.class just as if you were compiling using thejavac command.

            package org.kodejava.example.tools;
             
            import javax.tools.JavaCompiler;
            import javax.tools.ToolProvider;
             
            public class CompileHello {
            public static void main(String[] args) {
            JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
            int result = compiler.run(null, null, null,
            "src/org/kodejava/example/tools/Hello.java");
             
            System.out.println("Compile result code = " + result);
            }
            }

             


            posted on 2009-06-12 16:37 逛奔的蝸牛 閱讀(2619) 評論(2)  編輯 收藏 引用 所屬分類: Java

            評論

            # re: java: 在程序中編譯和執(zhí)行java程序 2009-06-12 16:56 暗金裝備
            還可以參考: http://konohaleaf.info/index.php?option=com_content&view=article&id=71:programmatically-compile-and-execute-in-java&catid=50:misc-example-programs&Itemid=64
              回復  更多評論
              

            # re: java: 在程序中編譯和執(zhí)行java程序 2011-05-11 19:41 jay_16
            Runtime run=Runtime.getRuntime();
            run.exec("cmd /c javac Calculator.java");
            run.exec("cmd /c java Calculator");
            Calculator是個有界面的程序,為什么編譯成功,卻運行不出來?
            Calculator程序文件在當前程序的目錄文件中的。  回復  更多評論
              

            免费精品久久天干天干| 91久久精品视频| 久久精品国产亚洲AV影院| 亚洲中文精品久久久久久不卡 | 99久久精品国产免看国产一区| 97久久超碰国产精品旧版| 青青青青久久精品国产| 久久综合偷偷噜噜噜色| 久久精品国产精品青草app| 亚洲国产精品无码久久久久久曰| 久久精品国产亚洲AV麻豆网站| 日本久久久久久中文字幕| 精品国产乱码久久久久久人妻| 国产亚洲美女精品久久久久狼| 久久只这里是精品66| 曰曰摸天天摸人人看久久久| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久久久久极精品久久久| 久久精品无码专区免费青青| 久久这里有精品| 久久精品成人| 久久香蕉一级毛片| 99久久超碰中文字幕伊人| 国内精品伊人久久久久妇| 久久久国产精华液| 国产精品欧美久久久久无广告 | 久久久久久夜精品精品免费啦| 一本久久a久久精品综合香蕉| 99精品伊人久久久大香线蕉| 久久不见久久见免费视频7| 亚洲综合熟女久久久30p| 香蕉久久夜色精品国产2020 | 久久这里的只有是精品23| 亚洲日本va午夜中文字幕久久| 欧美精品福利视频一区二区三区久久久精品 | 国产精品女同一区二区久久| 香蕉久久一区二区不卡无毒影院 | 97久久综合精品久久久综合| 久久综合噜噜激激的五月天| 麻豆亚洲AV永久无码精品久久| 无码国内精品久久人妻蜜桃|