1

所以我正在制作一个 javafx Media 类的新实例。

new Media("file://" + <path>);

我遇到的问题是我需要创建 Eclipse 中附加的类文件夹(“/music/launcher.wav”)的路径。我可以使用以下命令让它在 Eclipse 中工作:

this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()

方法,然后添加 .replaceAll("/bin/com/faris/game", "") 但这只是 Eclipse Debug 的修复,而不是实际导出的 jar 文件。如何在导出的 jar 文件中获取类文件夹的位置。

4

1 回答 1

3

这种方法:

this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()

返回 jar 文件位置(有关空格的问题,请在此处查看如何获取正在运行的 JAR 文件的路径?)在您拥有 .jar 位置后,您必须拥有资源,比如说 com/music/launcher.wav(com.music包),要以编程方式获取您的资源,您必须使用 .jar 位置并将您的资源位置添加到此位置,如下所示:

String resources = "/com/music/launcher.wav";
this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()+resources;

您也可以将资源添加为库,将其压缩为 ZIP,但随后您需要将其解压缩以通过代码使用(不难但更复杂),您可以像资源一样进入 lib 文件夹,只需像这样替换字符串资源:

String resoruces = "/lib/launcher.zip"

让我知道你是否能让它工作,问候。

于 2013-05-28T15:55:57.627 回答