Java 9,ClassLoader.getSystemClassLoader 的兼容性问题
下面的代码将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;
}