<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    在路上

    路上有驚慌,路上有理想

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      28 Posts :: 1 Stories :: 10 Comments :: 0 Trackbacks

    如果用過python,就知道它有了command line 工具,比如你輸入 print 'a' ,該工具輸出:a,好處是便于快速學(xué)習(xí)python 語法。

    其實(shí)java也可以做到。

    下面是一個(gè)java 腳本解釋器的helloword版本,思路如下:

    1動(dòng)態(tài)創(chuàng)建一個(gè)Temp.java類文件,里面只有一個(gè)excute方法,把從控制臺(tái)輸入 的字符串加入到類方法中,比如for(int i=0;i<10;i++){System.out.println(i);}。

    2再利用com.sun.tools.javac.Main.compile 動(dòng)態(tài)編譯Temp.java 生成class

    3將Temp.class載入到j(luò)vm

    4生成object實(shí)例,利用反射執(zhí)行excute方法

    說明,這只是個(gè)test版本。

    public class Test {
       public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, SecurityException, InvocationTargetException, NoSuchMethodException{
          
           
            BufferedReader reader  = new BufferedReader(new InputStreamReader(System.in));
            while(true){
                String js=reader.readLine();
               OutputStream os = new FileOutputStream("Temp.java"); 
                String tempJava="public class Temp"+
                   " {   "+
                    " public void excute() "+
                    " {  "+
                     js+
                    " }  "+
                   " }  ";
                os.write(tempJava.getBytes());  
                os.close();
                String[] compileArgs = new String[] {"Temp.java"};  
                com.sun.tools.javac.Main.compile(compileArgs);  
                URLClassLoader loader =  
                   new URLClassLoader(new URL[]{new File(".").toURI().toURL()}); 
                Class<?> scriptClass = loader.loadClass("Temp");
                Object obj = scriptClass.newInstance();
                obj.getClass().getDeclaredMethod("excute").invoke(obj);
                obj=null;
            }
       }
    }

    posted on 2010-08-30 22:29 阮步兵 閱讀(408) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲国产精品免费视频| 国产亚洲高清在线精品不卡| 人碰人碰人成人免费视频| 嫖丰满老熟妇AAAA片免费看| 国产日产亚洲系列| 亚洲欧美成人一区二区三区| 在线美女免费观看网站h| 激情97综合亚洲色婷婷五| 亚洲精品无码成人片久久不卡| 99视频在线免费看| 久久国产成人精品国产成人亚洲 | 成年在线网站免费观看无广告| 国产精品va无码免费麻豆| 日韩免费视频观看| 国产成人A人亚洲精品无码| 2020国产精品亚洲综合网| 2015日韩永久免费视频播放 | 亚洲 欧洲 视频 伦小说| 久久亚洲免费视频| 亚洲精品少妇30p| 一级片在线免费看| 四虎影视精品永久免费网站| 亚洲日本VA中文字幕久久道具| 亚洲免费观看网站| 亚洲天堂在线播放| 免费成人在线电影| 国产91精品一区二区麻豆亚洲 | 最新国产精品亚洲| 4399好看日本在线电影免费| 亚洲成在人天堂在线| a视频在线观看免费| 中文字幕亚洲电影| 高清免费久久午夜精品| 免费A级毛片无码A| 精品久久久久亚洲| 免费黄色大片网站| 亚洲精品无码日韩国产不卡av| 国产成人免费高清激情视频| 亚洲另类自拍丝袜第1页| 91精品成人免费国产片| 亚洲精品视频在线免费|