我正在访问要在我的 JavaFX 应用程序中使用的 Java 资源。
URL resource = getClass().getClassLoader().getResource("/image.jpg");
File file = new File(resource.getFile());
if (!file.exists()) {
throw new FileNotFoundException("No image: " + file)
}
一切正常,并且在作为 Java 应用程序运行时找到了资源。
但是,现在我正在使用 zenjava 的 Maven 插件将我的 JavaFX 应用程序捆绑在本机 Mac 应用程序中:
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>2.0</version>
<configuration>
<mainClass>
com.seaniscool.foobar.FooBar
</mainClass>
</configuration>
</plugin>
我使用本机插件构建:
mvn clean jfx:native
现在,当我通过运行 Mac.app
文件运行应用程序时,该资源无法再解析为文件。getResource
返回此网址:
jar:file:/Projects/foobar/target/foobar.app/Contents/Java/foobar-jfx.jar!/image.jpg
File
但是作为路径使用时找不到。