0
这段代码的想法是接收一些java文件,这些文件扩展了服务器上的另一个java文件。classloader上的java.lang.ClassNotFoundException
在这一刻,我忽略了明显的安全问题,但非少的代码如下:
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
但事实是该文件在那里。 关于为什么没有找到类的任何说法?
所以路径应该是这样 “my.package.folder。”和名称没有扩展名? nameOfFatherClass和name都应该有.class文件?它似乎如此接近,但问题仍然存在 –
是的,非常感谢! –
你还有问题Artur吗? – RamPrakash