public final class JavassistUtil extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
static String |
TMP_DIR_SUFFIX
临时目录名
|
| 构造器和说明 |
|---|
JavassistUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static byte[] |
clearMethodBody(javassist.ClassPool classPool,
String className,
boolean keepOriginArgsName,
String tips)
清空类中的方法体,并简单处理一下main,使提示密码无效
|
static void |
loadClass(javassist.ClassPool classPool,
String... paths)
加载指定的.class文件(或加载对应子孙目录下的所有.class文件)
|
static void |
loadJar(javassist.ClassPool classPool,
String... paths)
加载paths指定的.jar文件(或加载对应子孙目录下的所有jar包)
|
static String |
resolveClassName(String fileName,
boolean classOrPath)
根据class的绝对路径解析出class全类名(或class全类名文件所在的目录路径)
假设文件的全路径名是这样的/tmp/class-winter-core/src/main/java/com/niantou/iwork/core/Abc.class,
那么, 解析出来的class全类名即为com.niantou.iwork.core.Abc
解析出来的class全类名文件所在的目录路径即为/tmp/class-winter-core/src/main/java
|
public static String TMP_DIR_SUFFIX
public static byte[] clearMethodBody(javassist.ClassPool classPool,
String className,
boolean keepOriginArgsName,
String tips)
throws javassist.CannotCompileException,
javassist.NotFoundException
classPool - javassist的classPoolclassName - 要修改的class类的全类名keepOriginArgsName - 是否保留原方法的参数名tips - 被清空了方法体的方法内部的提示信息javassist.NotFoundException - 当清空的类中涉及到了某些其他的类,但是根本就没有引入(这些其他的类)相应的依赖时,就会抛出此异常(即:这个类本身就报错来着)
注:在编写项目A时,如果引入的依赖B的scope范围是provided时,那么当另一个项目X,引入A的依赖时,B是不会被依赖传递到X的,
就会出现上面的情况。
注:在某些其它情况下,也会抛出此异常。javassist.CannotCompileException - 统一封装异常public static void loadJar(javassist.ClassPool classPool,
String... paths)
throws javassist.NotFoundException
classPool - javassist的classPoolpaths - 要加载的文件夹或jar包javassist.NotFoundExceptionpublic static void loadClass(javassist.ClassPool classPool,
String... paths)
throws javassist.NotFoundException
classPool - javassist的classPoolpaths - 要加载的文件夹或.class文件javassist.NotFoundExceptionpublic static String resolveClassName(String fileName, boolean classOrPath)
假设文件的全路径名是这样的/tmp/class-winter-core/src/main/java/com/niantou/iwork/core/Abc.class, 那么, 解析出来的class全类名即为com.niantou.iwork.core.Abc 解析出来的class全类名文件所在的目录路径即为/tmp/class-winter-core/src/main/java
fileName - class文件的绝对路径classOrPath - true-解析全类名;false-解析全类名文件所在的目录路径Copyright © 2023. All rights reserved.