From f8696dada59043fc86e3f19f43f9eb80d5b6c2f8 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Fri, 19 Sep 2025 22:09:47 +0800 Subject: [PATCH] fix: custom shell generate failed --- .../javaweb/memshell/generator/CustomShellGenerator.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/generator/CustomShellGenerator.java b/generator/src/main/java/com/reajason/javaweb/memshell/generator/CustomShellGenerator.java index 8c0bc76e..a263228e 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/generator/CustomShellGenerator.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/generator/CustomShellGenerator.java @@ -31,13 +31,16 @@ public class CustomShellGenerator extends ByteBuddyShellGenerator if (StringUtils.isBlank(shellToolConfig.getShellClassName())) { shellToolConfig.setShellClassName(className); } - ClassFileLocator classFileLocator = ClassFileLocator.Simple.of(className, classBytes); + ClassFileLocator compoundLocator = new ClassFileLocator.Compound( + ClassFileLocator.Simple.of(className, classBytes), + ClassFileLocator.ForClassLoader.of(this.getClass().getClassLoader()) + ); TypeDescription typeDescription = new TypePool.Default( - new TypePool.CacheProvider.Simple(), classFileLocator, + new TypePool.CacheProvider.Simple(), compoundLocator, TypePool.Default.ReaderMode.FAST, TypePool.Default.ofSystemLoader() ).describe(className).resolve(); shellToolConfig.setShellTypeDescription(typeDescription); return new ByteBuddy() - .redefine(typeDescription, classFileLocator); + .redefine(typeDescription, compoundLocator); } }