JAVA尼奥。文件带有getPath的InvalidPathException
我正在使用这个代码
String path = getClass().getResource("Template.xls").getPath();
当我在我的机器(windows)上运行它时,一切都很好。我甚至还做了这个系统。出来获取资源部分和获取路径部分的println,结果为:
文件:/C:/Eclipse/Netbeans/SoftwareCom/build/classes/assets/Template。xls
/C:/Eclipse/Netbeans/SoftwareCom/build/classes/assets/Template。xls
但是,我从一些用户那里得到以下错误报告
java.nio.file.InvalidPathException: Illegal char <:> at index 4:
file:\C:\Software%20Com\SoftwareCom.exe!\assets\Template.xls
我不知道发生了什么或者为什么它对某些人有效而对其他人无效
有什么建议吗
# 1 楼答案
我也遇到了同样的问题,并通过使用好的ol文件API来解决它
成功了
# 2 楼答案
为了正确地回答这个问题,了解您想要对路径信息执行的操作会很有帮助。要读取文件,不需要路径。 你可以打个电话
如果你真的想知道路径,你应该打电话
这可能会导致问题,因为您似乎要将java文件打包到windows可执行文件中。见Error in URL.getFile()
编辑您的评论:
正如我在上面所写的,您不需要复制源的路径。你可以用
获取文件的内容并将内容写入您希望写入的任何位置。失败的原因是第二个示例中的文件包含在可执行文件中:
从路径可以看出:
感叹号表示资源在该文件中。 它在Netbeans中工作,因为那里的资源不是打包在jar中,而是文件系统上的一个单独文件。 您应该尝试在计算机上运行exe版本。它很可能也会失败。如果您需要更多信息或帮助,请提供完整的代码