不应该使用getResourceAsStream
与资源包路径的问题,前提是拥有资源的jar是在您的应用程序
一种方法从您的二进制文件自动创建resource.jar的类路径使用apache ant建筑,使用目标像下面,你将采取一切res
包资源并将其复制到目标罐子
<property name="binDir" value="bin" />
...
<target name="resources-jar">
<echo message="Generating resources.jar" />
<jar compress="true" destfile="resources.jar" filesetmanifest="mergewithoutmain">
<fileset defaultexcludes="true" dir="${binDir}">
<include name="**/res/**" />
</fileset>
</jar>
</target>
例如,由于以下包
com/myapp/logic
com/myapp/logic/res
com/myapp/menu
com/myapp/menu/res
com/myapp/actions
com/myapp/actions/res
的resource.jar
文件将包含以下包:
com/myapp/logic/res
com/myapp/menu/res
com/myapp/actions/res
您也可以为assets
“正确的罐子”?你将拥有完全相同包装和名称的资源? –
由于各种原因,我建议'getResource(“/ path/to/the.resource”)通过'getResourceAsStream'。请参阅[信息。关于嵌入式资源的页面](http://stackoverflow.com/tags/embedded-resource/info)(我在其中列出了没有解释的备选方案)。 –
@DaveNewton - 不,当然不是,我只是简单地引用了我想要定位特定外部jar的事实。 – CodeBunny