我最近升级到JDK 9,Eclipse抱怨无法导入sun.misc.Launcher
。 sun.misc.Launcher
似乎不安全。
我正在寻找替代我的项目中的这行代码的替代方案。
final URL url = Launcher.class.getResource("/");
任何帮助都将不胜感激。
更新:上述代码块的更完整版本是:
final URL url = Launcher.class.getResource("/");
final File fs = new File(url.toURI());
for (File f : fs.listFiles()) {
System.out.println(f.getAbsolutePath());
}
这是在IDE中启动程序时打印src
文件夹中的所有文件。
答案 0 :(得分:3)
从试图访问类的模块中的任何类调用Class.getResource
都可以正常工作。
final URL url = ClassInTheCurrentModule.class.getResource("/");
answer by shazin可能返回null
的原因可能是ClassLoader
成为getResource
来电的来电者:
当资源是包中的非“.class”资源时,返回
null
这不对来电者的模块开放。
由于ClassLoader
属于您的模块可能未打开的模块java.lang
中的包java.base
。
此外,请注意getResource
的分辨率将针对命名和未命名的模块进一步拆分。
答案 1 :(得分:2)
Class.getResource
上调用 Class
方法
final URL url = ClassInTheCurrentModule.class.getResource("/");
<强>更新强>
根据成员的反馈进行编辑