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

            woaidongmao

            文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數據加載中……

            動態生成編譯運行java類

               本代碼并非原創,是在我以前的學習筆記里面翻閱出來的,是csdn里面一位叫路人甲的朋友在論壇里面的回復,也許在這里發出來會幫助到很多朋友.其實十分簡單就不加注釋了,一共就3步,生成java文件,編譯java文件,運行java類,

            package com.syj;

            import java.io.File;
            import java.io.FileWriter;
            import java.lang.reflect.Method;

            public class CreateClass {
               
            private static String CLASS_NAME = "CreateClassTest";
               
            private static String CLASS_FILE = CLASS_NAME + ".java";

               
            public static void main(String args[]) {
                    CreateClass mtc
            = new CreateClass();
                    mtc.createClass();
                    System.out.println(
            "javac " + CLASS_FILE);
                    mtc.compileClass();
                    System.out.println(
            "java " + CLASS_NAME);
                    mtc.runClass();
                }

               
            public void createClass() {
                   
            try {
                       
            new File(CLASS_FILE).delete();
                        FileWriter aWriter
            = new FileWriter(CLASS_FILE, true);
                        aWriter.write(
            "public   class   " + CLASS_NAME + "{");
                        aWriter.write(
            "public   void   println()   {");
                        aWriter.write(
            "System.out.println("=" + CLASS_NAME + "=");");
                        aWriter.write(
            "}}");
                        aWriter.flush();
                        aWriter.close();
                    }
            catch (Exception e) {
                        e.printStackTrace();
                    }
                }

               
            public void compileClass() {
                    String filePath
            = new File(CreateClass.class.getClassLoader()
                            .getResource(
            "").getFile()).getAbsolutePath();
                    String[] source
            = { "-d", filePath, new String(CLASS_FILE) };
                    System.out.println(
            "javac out:"
                           
            + com.sun.tools.javac.Main.compile(source));
                }

               
            public void runClass() {
                   
            try {
                        Class params[]
            = {};
                        Object paramsObj[]
            = {};
                        Class testClass
            = Class.forName(CLASS_NAME);
                        Object iClass
            = testClass.newInstance();
                        Method thisMethod
            = testClass.getDeclaredMethod("println", params);
                        thisMethod.invoke(iClass, paramsObj);
                    }
            catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }

            需要引入%JAVA_HOME%\lib\tools.jar;這也是我遇到的tools.jar的唯一一個用途呵呵.

            posted on 2009-08-03 20:24 肥仔 閱讀(439) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

            亚洲AV无码久久精品成人| 94久久国产乱子伦精品免费 | 久久性精品| 久久人人青草97香蕉| 久久久久亚洲av无码专区导航| 久久中文娱乐网| 囯产极品美女高潮无套久久久| 亚洲乱亚洲乱淫久久| 久久精品国产免费观看| 久久最近最新中文字幕大全 | 精品久久久久久99人妻| 久久综合五月丁香久久激情| 亚洲日本va午夜中文字幕久久 | 亚洲级αV无码毛片久久精品| 久久久久97国产精华液好用吗| …久久精品99久久香蕉国产| 一本综合久久国产二区| 91亚洲国产成人久久精品网址| 亚洲精品乱码久久久久久中文字幕 | 久久精品国产69国产精品亚洲| 国产精品中文久久久久久久 | 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 99久久99久久| 亚洲国产精品无码久久久秋霞2| 久久精品国产一区二区| a级毛片无码兔费真人久久| 久久99精品久久久久久hb无码| 久久精品国产乱子伦| 久久综合视频网| 久久久久99这里有精品10| 欧美久久天天综合香蕉伊| 国产日韩久久久精品影院首页| 国产成人精品免费久久久久| 久久久久久国产精品免费无码 | 亚洲国产成人精品无码久久久久久综合| 国产精品欧美久久久天天影视| 99久久免费国产特黄| 成人午夜精品久久久久久久小说| 久久伊人精品青青草原高清| 99久久精品国产一区二区三区 | 狠狠色综合网站久久久久久久高清|