我遇到了麻烦,可能是由于一个错误,加载css或任何其他资源是JavaFX 2.2。到目前为止
File xml = new File(getClass().getResource("feed.xml").getFile());
打印文件路径的输出:
file:/home/bryan/NetBeansProjects/Postr/dist/run916076183/Postr.jar!/postr/feed.xml
我很确定我的问题是.jar之后的感叹号。知道为什么会这样吗?
答案 0 :(得分:0)
jar网址中的感叹号是正常的,有关信息,请参阅Javadoc。
但是您无法使用文件协议加载jar资源。文件协议仅用于从文件系统加载文件,而不用于从jar加载资源。
因此,请使用getResourceAsStream获取资源的流,然后根据需要操作该资源。
有些JavaFX apis将简单字符串作为参数而不是stream或url,因此您可以使用以下模式将jar资源url转换为字符串:
MyApplication.class.getResource("mystyles.css").toExternalForm()