Java 我应该在一个可执行的.JAR中打包多少?

Java 我应该在一个可执行的.JAR中打包多少?,java,file,jar,io,executable-jar,Java,File,Jar,Io,Executable Jar,我不确定这是否更适合超级用户,但我想我会选择StackOverflow 查看使用Java开发的游戏示例Minecraft,我们在游戏的AppData/.Minecraft文件夹中看到几个资源文件。这些文件,例如.OGG声音文件,基本上是用于将内容加载到游戏中的文件,没有打包在minecraft.jar可执行文件中 我正在与Eclipse合作开发Java应用程序,我想知道,既然您可以将任何类型的文件导入到Eclipse项目中,然后在导出时将其打包到一个可执行的.jar中,那么将大多数项(如内容、文

我不确定这是否更适合超级用户,但我想我会选择StackOverflow

查看使用Java开发的游戏示例Minecraft,我们在游戏的AppData/.Minecraft文件夹中看到几个资源文件。这些文件,例如.OGG声音文件,基本上是用于将内容加载到游戏中的文件,没有打包在minecraft.jar可执行文件中

我正在与Eclipse合作开发Java应用程序,我想知道,既然您可以将任何类型的文件导入到Eclipse项目中,然后在导出时将其打包到一个可执行的.jar中,那么将大多数项(如内容、文本文件等)打包到项目中有什么缺点? 要减小.jar的大小

我想说,将更多的东西打包到一个.jar中可能会带来更大的可移植性,但会导致更大的尺寸

也许我的观点不太正确,如果是这样的话,为什么Java开发人员希望(如果他们通常这样做的话)在.JAR旁边留下很多文件,让.JAR读取?尤其是静态文件(不会被修改或移动的文件)


谢谢大家!

StackOverflow绝对是这个超级用户的正确站点。在任何情况下,将内容放在外部的主要好处是,多个版本之间的文件是相同的,并且必须在不同版本之间下载所有音频文件会很烦人。将资源放在jar中的主要原因是为了自我容纳。这对于可执行jar很重要,但请注意它们与仅包含一个提供应用程序入口点(main方法)的类的jar之间的区别。但是,系统可以播放声音文件,而声音资源更适合保存在内存中并从内存中播放:成本高昂。