Installation 剥离要与应用程序捆绑的JRE-我可以省略什么?
我将JRE与我的应用捆绑在一起,只需将文件从Installation 剥离要与应用程序捆绑的JRE-我可以省略什么?,installation,java,Installation,Java,我将JRE与我的应用捆绑在一起,只需将文件从$JAVA_HOME/JRE复制到我的应用发行版。这可能与Java的精神背道而驰,但它通过确保我的应用程序运行在测试过的JRE版本上(包括bitness;我使用一些JNI,它要求JRE是32位版本)来减少潜在问题 它工作得很好,但是整个发行版有点大,所以可能会遗漏一些不必要的文件?实际上,$JAVA_HOME/jre/README.txt包含以下建议: 构成JavaSE运行时环境的文件分为 两类:必选和可选。可排除可选文件 从Java SE运行时环境在
$JAVA_HOME/JRE
复制到我的应用发行版。这可能与Java的精神背道而驰,但它通过确保我的应用程序运行在测试过的JRE版本上(包括bitness;我使用一些JNI,它要求JRE是32位版本)来减少潜在问题
它工作得很好,但是整个发行版有点大,所以可能会遗漏一些不必要的文件?实际上,$JAVA_HOME/jre/README.txt
包含以下建议:
构成JavaSE运行时环境的文件分为
两类:必选和可选。可排除可选文件
从Java SE运行时环境在
供应商的自由裁量权
下一节包含所创建的文件和目录的列表
可以选择从JavaSE运行时的重新分发中省略
环境不在这些可选文件列表中的所有文件都必须
包含在运行时环境的重新分发中
…在Microsoft Windows上将JRE作为私有文件重新分发时
应用程序运行时(其他应用程序无法访问)
使用自定义启动器,还可以创建以下文件
可选。这些是使用的库和可执行文件
用于Internet Explorer和Mozilla系列浏览器中的Java支持;
在私有JRE重新分发中不需要这些文件
令我困惑的是,可选文件列表包括:
bin\java.exe
bin\javaw.exe
bin\javaws.exe
如何选择java/javaw.exe
呢?如果没有它们,我该如何启动java应用程序?显然我不知道什么(可能),或者说明根本就错了
当使用自定义启动器在Microsoft Windows上将JRE作为私有应用程序运行时(其他应用程序无法访问)重新分发时,以下文件也是可选的
如果将JVM(通过链接其共享库)嵌入到自己的应用程序中,则不需要独立启动器可执行文件。例如,我认为Eclipse就是这样工作的
如果您的应用程序使用java可执行文件(例如通过批处理文件),那么您当然需要它们。虽然这与问题没有严格的关系,但对于删除“不需要的代码”的整个程序(或整个平台)优化,我发现这是一个很好的工具。YMMV.好的,那么
java.exe
只是一种启动器,有些启动器(可能是launch4j)包含类似的功能?我没有使用launch4j,但他们网站上的图片看起来很像它可以做到这一点,是的。你可能对它感兴趣