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
次の URL を返します。
jar:file:/Projects/foobar/target/foobar.app/Contents/Java/foobar-jfx.jar!/image.jpg
File
ただし、パスとして使用すると見つかりません。