Skip to content

Commit b8315b4

Browse files
committed
update > 自定义类加载器,修复BUG
1 parent 4cbdd07 commit b8315b4

1 file changed

Lines changed: 3 additions & 6 deletions

File tree

jvm/src/main/java/classloader/CustomClassLoader.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@ public CustomClassLoader(String classesDir) {
2323
@Override
2424
protected Class<?> findClass(String name) throws ClassNotFoundException {
2525
String fileName = name;
26-
if (fileName.indexOf('.') > 0) {
27-
fileName.replaceAll(".", "\\");
26+
if (fileName.indexOf('.') != -1) {
27+
fileName = fileName.replaceAll("\\.", "\\\\");
2828
}
2929
fileName = fileName + ".class";
30-
3130
try {
3231
try (FileInputStream in = new FileInputStream(classesDir + fileName)) {
3332
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
@@ -40,11 +39,9 @@ protected Class<?> findClass(String name) throws ClassNotFoundException {
4039
return defineClass(name, data, 0, data.length);
4140
}
4241
}
43-
4442
} catch (IOException e) {
45-
e.printStackTrace();
43+
throw new ClassNotFoundException(name);
4644
}
47-
return super.findClass(name);
4845
}
4946

5047
public static void main(String[] args) throws ReflectiveOperationException{

0 commit comments

Comments
 (0)