91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

*1.創建 URLClassLoader 類加載器 * 2.獲取當前執行的classpath的所有jar包的路徑 * 3.通過java的ToolProvider創建JavaCompile,用來執行class源文件 * 4.創建DiagnosticCollector用來執行獲取執行失敗的錯誤結果 * 5.添加動態執行的編譯環境 options 是個集合,添加內容,字符集,classpath等 * 6.傳入JavaFileObject的java文件,是個集合,創建JavaSourceObject實現這個接口,Kind.SOURCE.extension = '.java' * 7.創建任務并執行 * 8.獲取執行完成后的返回JavaClassObject類 * 9.創建DynamicClassLoader來加載類 ,defineClass這個方法

資源截圖

代碼片段和文件信息

package?com.compile.executor;

import?com.compile.shell.*;

/**
?*?@Description:?獲取編譯后的結果
?*?@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);
????}

????/**
?????*?獲取編譯的結果
?????*
?????*?@param?className
?????*?@param?classobject
?????*?@param?ruleName
?????*?@return
?????*/
????public?object?getCompileResult(String?className?JavaClassobject?classobject?String?ruleName)?{
????????//使用新的自定義Classloader,記得每個規則使用一個新的classloader
????????//當規則更新時,老的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(“load?class?error!“?+?“className=“?+?className?+?“\r\n“?+?e.getMessage()?e);
????????}
????}

}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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

評論

共有 條評論