真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java動(dòng)態(tài)編譯

public class helloworld {

public static void main(String[] args) throws IOException {

    //通過(guò)字符串動(dòng)態(tài)編譯:將字符串存儲(chǔ)成一個(gè)臨時(shí)文件(io流),然后調(diào)用動(dòng)態(tài)編譯方法
    String str="public class Hi {public static void main(String[] args){System.out.println(\"HaHa,sxt!\");}}";

    JavaCompiler compiler=ToolProvider.getSystemJavaCompiler(); //得到j(luò)ava的動(dòng)態(tài)編譯器
    //如果第一個(gè)參數(shù)為空則使用控制臺(tái)輸入,第二個(gè)為空則使用控制臺(tái)輸出,第三個(gè)為空則使用系統(tǒng)報(bào)錯(cuò)
    //第四個(gè)參數(shù)為String類型的可變參數(shù),即相當(dāng)于Sting類型的數(shù)組
    int result=compiler.run(null, null, null,"C:\\Users\\10853\\eclipse-workspace\\lala\\src\\cn\\sxt\\in\\helloworld.java");
    //返回值為0則表示編譯成功,否則為失敗
    System.out.println(result==0?"編譯成功":"編譯失敗");

    //通過(guò)Runtime.getRuntime()運(yùn)行編譯好的類
    Runtime run=Runtime.getRuntime();
    Process process=run.exec("java -cp C:\\Users\\10853\\eclipse-workspace\\lala\\src\\cn\\sxt\\in  helloworld");

    InputStream in=process.getInputStream();
    BufferedReader reader=new BufferedReader(new InputStreamReader(in));
    String info="";
    while((info=reader.readLine())!=null)
    {
        System.out.println(info);
    }
    //通過(guò)反射運(yùn)行編譯好的類

     try {
         URL[] urls = new URL[] {new URL("file:/"+"C:/myjava/")};
         URLClassLoader loader = new URLClassLoader(urls);
         Class c = loader.loadClass("HelloWorld");
         //調(diào)用加載類的main方法
         Method m = c.getMethod("main",String[].class);
         m.invoke(null, (Object)new String[]{});
         //由于可變參數(shù)是JDK5.0之后才有。
         //m.invoke(null, (Object)new String[]{});會(huì)編譯成:m.invoke(null,"aa","bb"),就發(fā)生了參數(shù)個(gè)數(shù)不匹配的問題。
         //因此,必須要加上(Object)轉(zhuǎn)型,避免這個(gè)問題。
         //public static void main(String[] args)

     } catch (Exception e) {
         e.printStackTrace();
     }

}
}

網(wǎng)頁(yè)題目:java動(dòng)態(tài)編譯
當(dāng)前鏈接:http://weahome.cn/article/jdjsjp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部