Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在applet和桌面应用程序中一致加载资源?_Java_Image_Applet_Load_Media - Fatal编程技术网

Java 如何在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,那么有没有办

我有一个桌面应用程序,我想有一个小程序版本的它。 我希望jar是可执行的,并且能够作为applet运行

我有一个
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")