【发布时间】:2016-12-22 02:44:25
【问题描述】:
从可执行 jar 运行应用程序时,我遇到了这个异常:
java.lang.UnsupportedOperationException: Unsupported protocol "rsrc"
at com.sun.media.jfxmedia.locator.Locator.<init>(Locator.java:233)
at com.sun.media.jfxmediaimpl.NativeMediaAudioClip.<init>(NativeMediaAudioClip.java:53)
at com.sun.media.jfxmediaimpl.NativeMediaAudioClip.load(NativeMediaAudioClip.java:63)
at com.sun.media.jfxmediaimpl.AudioClipProvider.load(AudioClipProvider.java:66)
at com.sun.media.jfxmedia.AudioClip.load(AudioClip.java:135)
at javafx.scene.media.AudioClip.<init>(AudioClip.java:83)
at com.aqua.snakesandladders.view.gamepieces.Token.<init>(Token.java:70)"
这里是 Token.java:70,就是这个原因:
AudioClip bounceSound = new AudioClip(getClass().getResource("/sounds/bounce.wav").toExternalForm());
“bounce.wav”位于“resources”源文件夹@“sounds”子文件夹中。
在eclipse中运行应用程序不会抛出异常@此时+在需要时播放AudioClip。
帮助! :(
【问题讨论】:
-
你检查过
getClass().getResource("/sounds/bounce.wav").toExternalForm()产生了什么吗?也许这是构造函数不喜欢的东西。 (这就是javafx.scene.media.AudioClip.<init>(AudioClip.java:83)所说的) -
当我在 Eclipse 中运行它时它喜欢它,但当我从可执行 jar 运行它时它不喜欢它?
-
当涉及到图像或 css 文件时,相同的语法在 IDE 和 jar 上都没有问题。
-
你能为此提供一些 mcve 吗? stackoverflow.com/help/mcve
标签: eclipse javafx-8 executable-jar audioclip