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

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

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

    在路上

    路上有驚慌,路上有理想

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

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

    其實(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方法

    說(shuō)明,這只是個(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 阮步兵 閱讀(407) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 国产精品视频免费观看| 免费国产叼嘿视频大全网站| 免费无码又爽又刺激聊天APP| 久久久久亚洲AV无码麻豆| 日韩免费视频一区二区| 亚洲天堂在线播放| 91在线免费视频| 亚洲熟妇无码AV在线播放| 男女拍拍拍免费视频网站 | 免费可以在线看A∨网站| 亚洲成a人片在线观看中文!!!| 亚欧免费无码aⅴ在线观看| 久久亚洲一区二区| 91网站免费观看| 亚洲影院天堂中文av色| 国产一区二区三区免费视频| 无遮挡国产高潮视频免费观看| 国产精品亚洲w码日韩中文| 在线观看特色大片免费网站| 99久久亚洲综合精品成人网| 97热久久免费频精品99| 亚洲男同gay片| 亚洲人午夜射精精品日韩| 国产一级淫片a免费播放口| 亚洲欧洲国产视频| 日韩免费无码一区二区视频| 一级毛片在线完整免费观看| 亚洲国产精品免费视频| 成人无遮挡裸免费视频在线观看 | 亚洲精品视频在线看| 国产又黄又爽又大的免费视频 | 亚洲综合区小说区激情区| a级毛片在线免费| 亚洲国产美女精品久久久久| 国产成人免费片在线观看| 两个人看的www免费高清| 亚洲一区在线视频| 可以免费观看的一级毛片| 三级网站在线免费观看| 亚洲成a人片在线观看精品| 亚洲国产精品碰碰|