Java 如何在applet和桌面应用程序中一致加载资源?
我有一个桌面应用程序,我想有一个小程序版本的它。 我希望jar是可执行的,并且能够作为applet运行 我有一个Java 如何在applet和桌面应用程序中一致加载资源?,java,image,applet,load,media,Java,Image,Applet,Load,Media,我有一个桌面应用程序,我想有一个小程序版本的它。 我希望jar是可执行的,并且能够作为applet运行 我有一个GamePane类,它扩展了JPanel,并以以下方式从媒体文件夹加载一些媒体: File f = new File("media/path/to/file"); 无论jar是作为可执行文件运行还是作为小程序运行,我如何修改它以正确加载媒体 我看到了,但这些建议都不起作用,至少在开发过程中,当运行的代码位于bin文件夹中而不是jar中时是不起作用的。如果它只适用于jar,那么有没有办
GamePane
类,它扩展了JPanel
,并以以下方式从媒体文件夹加载一些媒体:
File f = new File("media/path/to/file");
无论jar是作为可执行文件运行还是作为小程序运行,我如何修改它以正确加载媒体
我看到了,但这些建议都不起作用,至少在开发过程中,当运行的代码位于bin
文件夹中而不是jar中时是不起作用的。如果它只适用于jar,那么有没有办法让开发过程不那么痛苦
我的目录结构是:
Game->
media
game.jar
将媒体文件存储在jar中,这将使它们从类路径中可用,并使用
MyClass.class.getResource("/media/foo.png")
或
访问媒体(作为URL或流)
在开发过程中,由于您希望从类路径加载介质,这意味着介质必须存储在源文件夹中:IDE将为您将它们复制到目标目录(即编译器生成.class文件的位置).如果必须将其放在jar之外,该怎么办?然后使用基本URL(指向文件或文档库)参数化应用程序/小程序,并使用URL加载媒体。URL是一种通过多种方式访问资源的行为。“如果我必须将其放在jar之外怎么办?”何时/为什么会出现这种情况?
MyClass.class.getResourceAsStream("/media/foo.png")