• <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);

                }

            }

            執行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: 在程序中編譯和執行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: 在程序中編譯和執行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程序文件在當前程序的目錄文件中的。  回復  更多評論
              

            欧美亚洲国产精品久久| 欧美亚洲国产精品久久高清| 九九精品久久久久久噜噜| 久久香综合精品久久伊人| 一本色道久久综合狠狠躁| 国产午夜精品久久久久免费视| 久久久久久国产精品无码下载| 欧美性大战久久久久久| 精品国产乱码久久久久软件| 亚洲欧洲久久久精品| 国产精品免费久久久久久久久| 久久综合九色综合97_久久久| 久久国产精品无码一区二区三区| 亚洲国产精品婷婷久久| 波多野结衣久久| 国产成人精品白浆久久69| 国产精品成人99久久久久91gav | 88久久精品无码一区二区毛片 | 中文字幕久久精品| 伊人久久综合精品无码AV专区| 色综合久久中文综合网| 国内精品久久久久影院薰衣草| 99精品久久久久久久婷婷| 色综合久久中文字幕无码| 四虎国产精品免费久久| 久久99国产精品久久久 | 好属妞这里只有精品久久| 香蕉99久久国产综合精品宅男自 | 97久久精品国产精品青草| 久久综合精品国产一区二区三区 | 久久综合亚洲鲁鲁五月天| 国产成人久久AV免费| 久久久久亚洲AV无码麻豆| 久久经典免费视频| 久久中文精品无码中文字幕| 国产成人精品久久综合| 精品久久久久久99人妻| 合区精品久久久中文字幕一区| 久久精品这里只有精99品| 久久无码人妻精品一区二区三区| 精品综合久久久久久97超人|