File tree Expand file tree Collapse file tree
src/main/java/club/shengsheng Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11package club .shengsheng ;
22
33
4+ import java .io .File ;
5+ import java .nio .file .Files ;
6+
47/**
58 * @author gongxuanzhangmelt@gmail.com
69 **/
710public class MyClassLoader extends ClassLoader {
811
12+ @ Override
13+ protected Class <?> loadClass (String name , boolean resolve ) throws ClassNotFoundException {
14+ synchronized (getClassLoadingLock (name )) {
15+ Class <?> c = findLoadedClass (name );
16+ if (c == null ) {
17+ if (name .startsWith ("tech" )) {
18+ c = findClass (name );
19+ } else {
20+ c = getParent ().loadClass (name );
21+ }
22+ }
23+ if (resolve ) {
24+ resolveClass (c );
25+ }
26+ return c ;
27+ }
28+ }
29+
30+ @ Override
31+ protected Class <?> findClass (String name ) throws ClassNotFoundException {
32+ File classFile = new File (System .getProperty ("user.dir" ) + File .separator + "加密.class" );
33+ try {
34+ byte [] bytes = Files .readAllBytes (classFile .toPath ());
35+ for (int i = 0 ; i < bytes .length ; i ++) {
36+ bytes [i ] = (byte ) (bytes [i ] - 1 );
37+ }
38+ return defineClass (name , bytes , 0 , bytes .length );
39+ } catch (Exception e ) {
40+ throw new ClassNotFoundException (name );
41+ }
42+ }
43+
944}
You can’t perform that action at this time.
0 commit comments