我正在尝试获取资源的路径,但我没有运气。
这有效(在 IDE 和 JAR 中),但这样我无法获得文件的路径,只有文件内容:
ClassLoader classLoader = getClass().getClassLoader(); PrintInputStream(classLoader.getResourceAsStream("config/netclient.p"));
如果我这样做:
ClassLoader classLoader = getClass().getClassLoader(); File file = new File(classLoader.getResource("config/netclient.p").getFile());
结果是: java.io.FileNotFoundException: file:/path/to/jarfile/bot.jar!/config/netclient.p (No such file or directory)
java.io.FileNotFoundException: file:/path/to/jarfile/bot.jar!/config/netclient.p (No such file or directory)
有没有办法获取资源文件的路径?
这是故意的。“文件”的内容可能无法作为文件使用。请记住,您正在处理可能是 JAR 文件或其他类型资源的一部分的类和资源。类加载器不必为资源提供文件句柄,例如 jar 文件可能尚未扩展为文件系统中的单个文件。
如果 java.io.File 是绝对必要的,则可以通过将流复制到临时文件中并执行相同操作来完成通过获取 java.io.File 所做的任何事情。