• <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程序文件在當前程序的目錄文件中的。  回復  更多評論
              

            久久精品a亚洲国产v高清不卡| 99久久精品国产一区二区| 91久久香蕉国产熟女线看| 成人妇女免费播放久久久| 久久久精品国产免大香伊 | 亚洲精品高清国产一久久| 狠狠久久亚洲欧美专区| 久久亚洲综合色一区二区三区| 精品久久久噜噜噜久久久| 久久婷婷综合中文字幕| 亚洲综合婷婷久久| 久久久久亚洲精品无码网址| 三级片免费观看久久| 国产99久久久国产精品小说| 中文字幕乱码人妻无码久久| 色婷婷综合久久久久中文 | 亚洲国产成人久久精品动漫| 久久青青草原综合伊人| 精品欧美一区二区三区久久久| 无码人妻少妇久久中文字幕| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久99精品免费一区二区| 亚洲精品成人久久久| 一本色道久久综合狠狠躁篇| 亚洲中文久久精品无码| 国产精品欧美久久久天天影视| 国产免费久久久久久无码| 一个色综合久久| 精品久久一区二区三区| 久久人人爽人爽人人爽av| 中文字幕乱码人妻无码久久| 久久亚洲精品视频| 亚洲精品tv久久久久久久久| 国产精品美女久久久久网| 国内精品伊人久久久久妇| 久久91精品国产91久久麻豆| 亚洲欧洲精品成人久久奇米网| 国产亚洲综合久久系列| 久久综合久久综合亚洲| 久久精品国产只有精品2020| 久久亚洲精品无码aⅴ大香|