diff --git a/pom.xml b/pom.xml
index f8cfcc8..93aa0d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,9 +8,10 @@
custom-classloader
1.0-SNAPSHOT
+
- 17
- 17
+ 11
+ 11
UTF-8
diff --git a/src/main/java/club/shengsheng/MyClassLoader.java b/src/main/java/club/shengsheng/MyClassLoader.java
index 21026cf..a68a274 100644
--- a/src/main/java/club/shengsheng/MyClassLoader.java
+++ b/src/main/java/club/shengsheng/MyClassLoader.java
@@ -1,9 +1,45 @@
package club.shengsheng;
-/**
- * @author gongxuanzhangmelt@gmail.com
- **/
+import java.io.File;
+import java.nio.file.Files;
+
public class MyClassLoader extends ClassLoader {
+ @Override
+ protected Class> loadClass(String name, boolean resolve)
+ throws ClassNotFoundException {
+ synchronized (getClassLoadingLock(name)) {
+ // First, check if the class has already been loaded
+ Class> c = findLoadedClass(name);
+ if (c == null) {
+ if (name.startsWith("tech")) {
+ c = findClass(name);
+ } else {
+ c = getParent().loadClass(name);
+ }
+ }
+ if (resolve) {
+ resolveClass(c);
+ }
+ return c;
+ }
+ }
+
+ @Override
+ protected Class> findClass(String name) throws ClassNotFoundException {
+ String rootFile = System.getProperty("user.dir").concat(".加密".replace('.', File.separatorChar)).concat(".class");
+ File classFile = new File(rootFile);
+ byte[] classBytes;
+ try {
+ classBytes = Files.readAllBytes(classFile.toPath());
+ for (int i = 0; i < classBytes.length; i++) {
+ classBytes[i] -= 1;
+ }
+
+ } catch (Exception e) {
+ throw new ClassNotFoundException();
+ }
+ return defineClass(name, classBytes, 0, classBytes.length);
-}
+ }
+}
\ No newline at end of file