[英]Adding folders to java classpath at runtime
我想使用class.forName从另一个项目加载一个类(包含在jar文件中)。 我在stackoverflow中找到了以下代码。 如果我知道Jar文件的名称,它就可以正常工作。
File f = new File("D:/workspace/secondproject/lib/temp.jar");
URI u = f.toURI();
URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Class<URLClassLoader> urlClass = URLClassLoader.class;
Method method = urlClass.getDeclaredMethod("addURL", new Class[]{URL.class});
method.setAccessible(true);
method.invoke(urlClassLoader, new Object[]{u.toURL()});
try {
Class.forName ("pk1.foo");
}
catch (Exception ex) {
System.out.println ("Failed.");
}
但是,当我传递包含jar文件的文件夹地址而不是jar文件的地址时,该代码不起作用。 在上面的示例D:/ workspace / secondproject / lib中 。
我不知道为什么它不起作用。 我希望当我传递文件夹时,它会搜索该目录中的所有文件。 请让我知道我做错了什么以及如何在运行时将文件夹传递给classPath。
简而言之:这是行不通的。
您必须遍历文件夹中的文件并添加它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.