我一直通过将文件从
它可以正常运行,但整个分发有点大,因此可能可以省略一些不必要的文件吗?实际上,
引用:
$JAVA_HOME/jre
复制到我的应用程序分发中来捆绑JRE。这可能违背了Java的精神,但它通过确保我的应用程序在测试过JRE版本上运行(包括位数;我使用一些需要32位版本JRE的JNI)来减少潜在的问题。它可以正常运行,但整个分发有点大,因此可能可以省略一些不必要的文件吗?实际上,
$JAVA_HOME/jre/README.txt
包含以下建议:引用:
组成Java SE Runtime Environment的文件分为两类:必选和可选。 可选文件可以根据供应商的判断从Java SE Runtime Environment的再分发中排除。
以下部分列出了可能可以从Java SE Runtime Environment的再分发中省略的文件和目录的列表。 不包含在这些可选文件列表中的所有文件都必须包含在运行时环境的再分发中。
...将JRE作为私有应用程序运行时(其他应用程序无法访问)在Microsoft Windows上重新分发时,以下文件也是可选的。 这些是在Internet Explorer和Mozilla系列浏览器中用于Java支持的库和可执行文件; 这些文件在私有JRE再分发中不需要。
令我困惑的是,可选文件列表中包括:bin\java.exe
bin\javaw.exe
bin\javaws.exe
Java/Javaw.exe怎么可能是可选的?如果没有它们,我该如何启动Java应用程序呢?很明显我不知道某些东西(很可能),或者说明书就是错的。