以下代码将jar文件添加到构建路径,它在Java 8中运行良好。但是,在Java 9中,它会抛出与URLClassLoader转换相关的异常。有什么想法可以解决这个问题?最佳解决方案将对其进行编辑,以使其同时适用于Java 8和9。
private static int AddtoBuildPath(File f) {
try {
URI u = f.toURI();
URLClassLoader urlClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Class<URLClassLoader> urlClass = URLClassLoader.class;
Method method = urlClass.getDeclaredMethod("addURL", URL.class);
method.setAccessible(true);
method.invoke(urlClassLoader, u.toURL());
} catch (NoSuchMethodException | SecurityException | IllegalArgumentException | InvocationTargetException | MalformedURLException | IllegalAccessException ex) {
return 1;
}
return 0;
}
URLClassLoader
。这甚至有一个优点,即当服务类不再需要时,它们可以被卸载。 - Holger