• <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 逛奔的蝸牛 閱讀(2618) 評論(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
              回復(fù)  更多評論
              

            # 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程序文件在當(dāng)前程序的目錄文件中的。  回復(fù)  更多評論
              

            久久人妻无码中文字幕| 色综合久久天天综合| 性欧美大战久久久久久久| 伊色综合久久之综合久久| 波多野结衣久久一区二区| 久久精品国产亚洲AV无码麻豆| 久久久这里有精品| 久久亚洲AV成人出白浆无码国产 | 久久精品9988| 精品久久久久久国产三级| 国产精品99久久久久久猫咪 | 久久99久久99精品免视看动漫| 久久这里只有精品首页| 婷婷久久久亚洲欧洲日产国码AV | 久久精品视频网| 伊人久久大香线蕉综合5g| .精品久久久麻豆国产精品| 久久久久国色AV免费观看| 99久久久国产精品免费无卡顿| 久久国产视屏| 亚洲综合伊人久久综合| 久久免费大片| 久久久噜噜噜久久| 中文字幕久久欲求不满| 久久精品人人做人人爽97| 2019久久久高清456| 亚洲Av无码国产情品久久| 久久精品视屏| 久久久久18| 国产精品亚洲美女久久久| 国内精品久久久久久99| 少妇久久久久久久久久| 99久久无色码中文字幕人妻| 久久精品?ⅴ无码中文字幕| 精品久久久久久亚洲| 日韩精品久久久久久久电影蜜臀| 亚洲精品国产自在久久| 国产午夜福利精品久久| 99久久99久久精品国产| 久久精品无码一区二区日韩AV| 999久久久国产精品|