xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡介

*1.創(chuàng)建 URLClassLoader 類加載器 * 2.獲取當(dāng)前執(zhí)行的classpath的所有jar包的路徑 * 3.通過java的ToolProvider創(chuàng)建JavaCompile,用來執(zhí)行class源文件 * 4.創(chuàng)建DiagnosticCollector用來執(zhí)行獲取執(zhí)行失敗的錯(cuò)誤結(jié)果 * 5.添加動(dòng)態(tài)執(zhí)行的編譯環(huán)境 options 是個(gè)集合,添加內(nèi)容,字符集,classpath等 * 6.傳入JavaFileObject的java文件,是個(gè)集合,創(chuàng)建JavaSourceObject實(shí)現(xiàn)這個(gè)接口,Kind.SOURCE.extension = '.java' * 7.創(chuàng)建任務(wù)并執(zhí)行 * 8.獲取執(zhí)行完成后的返回JavaClassObject類 * 9.創(chuàng)建DynamicClassLoader來加載類 ,defineClass這個(gè)方法

資源截圖

代碼片段和文件信息

package?com.compile.executor;

import?com.compile.shell.*;

/**
?*?@Description:?獲取編譯后的結(jié)果
?*?@Auther:?wjx
?*?@Date:?2019/1/29?15:45
?*/
public?class?JavaShellExecutor?{

????/**
?????*?獲取類名,等于ruleName
?????*
?????*?@param?ruleName
?????*?@return
?????*/
????public?String?getClassName(String?ruleName)?{
????????String?className?=?ruleName.replaceAll(“[^a-z^A-Z]“?““);
????????return?className.substring(0?1).toUpperCase()?+?className.substring(1);
????}

????/**
?????*?獲取編譯的結(jié)果
?????*
?????*?@param?className
?????*?@param?classobject
?????*?@param?ruleName
?????*?@return
?????*/
????public?object?getCompileResult(String?className?JavaClassobject?classobject?String?ruleName)?{
????????//使用新的自定義Classloader,記得每個(gè)規(guī)則使用一個(gè)新的classloader
????????//當(dāng)規(guī)則更新時(shí),老的classloader可被釋放
????????try?{
????????????if?(DataEventFactory.eventClassLoaders.get(ruleName)?==?null)?{
????????????????DynamicEngine.getInstance().createNewClassLoader(ruleName);
????????????}
????????????DynamicClassLoader?dynamicClassLoader?=?new?DynamicClassLoader(DataEventFactory.eventClassLoaders.get(ruleName));
????????????Class?aClass?=?dynamicClassLoader.loadClass(JavaSourceobject.packageName?+?ruleName?classobject);
????????????object?o?=?null;
????????????try?{
????????????????o?=?aClass.newInstance();
????????????}?catch?(Exception?e)?{
????????????????e.printStackTrace();
????????????}
????????????System.out.println(o);
????????????return?o;
????????}?catch?(Throwable?e)?{
????????????throw?new?RuntimeException(“l(fā)oad?class?error!“?+?“className=“?+?className?+?“\r\n“?+?e.getMessage()?e);
????????}
????}

}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-30?10:59??com\
?????文件???????10353??2019-01-30?14:39??compile-shell-0.0.1-SNAPSHOT.jar
?????目錄???????????0??2019-01-30?11:05??com\compile\
?????目錄???????????0??2019-01-30?14:39??com\compile\executor\
?????文件????????1756??2019-01-30?14:39??com\compile\executor\JavaShellExecutor.java
?????目錄???????????0??2019-01-30?14:24??com\compile\shell\
?????文件????????1018??2019-01-30?11:00??com\compile\shell\ClassFileManager.java
?????文件?????????425??2019-01-30?11:00??com\compile\shell\DataEventFactory.java
?????文件?????????841??2019-01-30?11:00??com\compile\shell\DynamicClassLoader.java
?????文件????????6127??2019-01-30?14:24??com\compile\shell\DynamicEngine.java
?????文件?????????844??2019-01-30?11:00??com\compile\shell\JavaClassobject.java
?????文件?????????796??2019-01-30?11:00??com\compile\shell\JavaSourceobject.java

評論

共有 條評論