获取库的路径 - Java

时间:2013-05-28 15:02:48

标签: java eclipse jar path media

所以我正在创建一个javafx Media类的新实例。

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

我遇到的问题是我需要创建Eclipse中附加的类文件夹(&#34; /music/launcher.wav")的路径。我可以使用:

在Eclipse中使用它
this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()

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

1 个答案:

答案 0 :(得分:3)

这种方法:

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

返回jar文件位置(对于空格问题,请查看此处How to get the path of a running JAR file?) 在您拥有.jar位置之后,您必须拥有自己的资源,让我们说com / music / launcher.wav(com.music包),以编程方式获取您的资源,您必须使用.jar位置并将此资源位置添加到此位置像这样:

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

你可以将你的资源添加为库,将其压缩为ZIP,但是你需要通过代码解压缩它(不是很难但是更复杂),你可以用同样的方式访问lib文件夹作为资源,只需像这样替换String资源:

String resoruces = "/lib/launcher.zip"

让我知道你是否可以让它发挥作用,问候。