【发布时间】:2016-06-28 04:26:49
【问题描述】:
我希望能够浏览文件夹中的所有文件夹以加载这些文件夹中的类
我当前的代码没有检查所有的包。它只会加载未打包的类。
@SuppressWarnings({"rawtypes", "unchecked"})
public Class[] getClassesFromFolder() {
File folder = getFolder();
String thePath = folder.getPath();
ArrayList<Class<Script>> classes = new ArrayList<Class<Script>>();
try {
URL[] path = {new URL("file://" + thePath + "/Scripts/")};
File scriptFolder = new File(getFolder().getPath() + "/Scripts");
URLClassLoader cl = new URLClassLoader(path);
for (String script : scriptFolder.list()) {
if (script.contains(".class") && !script.contains("$")) {
String truePath = script.replace(".class", "");
try {
Class<?> scriptClass = (Class<?>) cl
.loadClass(truePath);
classes.add((Class<Script>) scriptClass);
} catch (Exception e) {
e.printStackTrace();
}
}
}
cl.close();
} catch (Exception e) {
e.printStackTrace();
}
return classes.toArray(new Class<?>[classes.size()]);
}
【问题讨论】:
-
您的问题/问题具体是什么?不要指望其他人会从你的代码中扣除潜在的想法;以及为什么这不起作用。
标签: java class packages urlclassloader