Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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
如何在MacOS上的Java游戏中包含资源?_Java_Macos_Game Development - Fatal编程技术网

如何在MacOS上的Java游戏中包含资源?

如何在MacOS上的Java游戏中包含资源?,java,macos,game-development,Java,Macos,Game Development,我用Java编写了一个带有外部资源文件(图像、声音等)的游戏,当我将.jar导出到.exe时,它可以在Windows上运行,但当我将.jar导出到.app时,它不能在MacOS上运行 我在EclipseIDE中编写了这个游戏,并将其导出为一个runnable.jar文件 我让它在Windows上运行的过程是,我首先使用一个名为“Launch4j”的应用程序从.jar导出到.exe。然后我复制了我开发游戏的文件夹,这样所有的资源文件都以正确的方式组织起来。最后,我把.exe文件放在主目录中,它就可

我用Java编写了一个带有外部资源文件(图像、声音等)的游戏,当我将.jar导出到.exe时,它可以在Windows上运行,但当我将.jar导出到.app时,它不能在MacOS上运行

我在EclipseIDE中编写了这个游戏,并将其导出为一个runnable.jar文件

我让它在Windows上运行的过程是,我首先使用一个名为“Launch4j”的应用程序从.jar导出到.exe。然后我复制了我开发游戏的文件夹,这样所有的资源文件都以正确的方式组织起来。最后,我把.exe文件放在主目录中,它就可以工作了

我试图让它在MacOS上运行的过程是,我首先在Mac上使用一个名为“AppMaker”的应用程序,将.jar导出到.app。然后,我复制了一份包含资源的文件夹,并将.app文件放入其中,但它没有打开

我注意到,如果我将一个没有资源的游戏导出到.app,并将其放入Mac上的“应用程序”文件夹中,它会起作用,因此我尝试在资源游戏中将我的资源文件夹放入实际的应用程序文件夹中,但它也没有打开

我让Java资源游戏在Mac上运行的唯一方法是根本不将其导出到.app文件,而是将其作为.jar保存在资源文件夹中,但我非常喜欢你如何更改.app图标,并将该文件实际显示为一个应用程序


有什么方法可以让我的.app文件和资源在MacOS上运行吗?

我想FatJar可能会对你有所帮助。
Fat Jar是一个包含运行应用程序所需的类和依赖项的存档,这里您有一些关于它的信息:

虽然这个链接可以回答这个问题,但最好在这里包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-谢谢你!我以前从未使用过Maven,所以请原谅我对这个主题的无知,但是编译一个FatJar会让我包含很多不同的文件和文件夹,而不仅仅是类文件吗?只要它们在项目中,它们就会被包含。资源应该嵌入JAR文件中(然后将其转换为特定于平台的包)。您可以通过
Class#getResource(String)
Class#getresourceastream(String)
等方法访问这些资源。此API设计为独立于应用程序位置,因为它依赖于类路径/模块路径。