java.lang.ClassNotFoundException 在类加载器上

java.lang.ClassNotFoundException on classloader

这段代码的想法是接收一些 java 文件,这些文件扩展了我在服务器上的另一个 java 文件。

目前我忽略了明显的安全问题,但代码如下:

private boolean isTheFileIamLookingFor(String name,String path,String nameOfFatherClass) {
        System.out.println("NAME IS "+name); //prints correct class name
        System.out.println("PATH IS "+path); //prints correct path
        if(Files.getFileExtension(path).equals("class"))
        {
            try {
                ClassLoader classLoader = this.getClass().getClassLoader();
                Class<?> loadedMyClass = classLoader.loadClass(String.format("%s.class", name));
                Class<?> c[] = loadedMyClass.getInterfaces();
                if(Arrays.asList(c).contains(Class.forName(nameOfFatherClass)))
                {
                    return true;
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
        return false;

    }

但是我收到了错误

java.lang.ClassNotFoundException: MyClass.class

但事实是文件在那里。 关于为什么找不到 class 的任何想法?

进口java.util.Arrays; 导入 org.apache.commons.io.FilenameUtils;

public class 我的测试 {

public static void main(String[] args) {
    mytest m = new mytest();
    System.out.println(m.isTheFileIamLookingFor("ArrayList", "java.util.",
            "List"));
}

public boolean isTheFileIamLookingFor(String name, String path,
        String nameOfFatherClass) {
    System.out.println("NAME IS " + name); // prints correct class name
    System.out.println("PATH IS " + path); // prints correct path
    if (!FilenameUtils.getExtension(path).equals("class"))

    {
        try {
            ClassLoader classLoader = this.getClass().getClassLoader();
            System.out.println(String.format("%s.class", name));
            Class<?> loadedMyClass = classLoader.loadClass(path + name);
            Class<?> c[] = loadedMyClass.getInterfaces();
            if (Arrays.asList(c).contains(
                    Class.forName(path + nameOfFatherClass))) {
                return true;
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    return false;

}

}