java - 如何减小 jre 大小以与应用程序捆绑?
问题描述
我想减小 jre 的大小。我已经从 jre 中排除了一些文件,这些文件在下面给出。
bin\java.exe
bin\javaw.exe
bin\javaws.exe
bin\javacpl.exe
bin\jucheck.exe
bin\dtplugin
bin\jabswitch.exe
bin\java_crw_demo.dll
bin\JavaAccessBridge-32.dll
bin\JavaAccessBridge.dll
bin\JAWTAccessBridge-32.dll
bin\JAWTAccessBridge.dll
bin\WindowsAccessBridge-32.dll
bin\WindowsAccessBridge.dll
bin\wsdetect.dll
bin\dtplugin\*
bin\plugin2\*
bin\deploy.dll
bin\jfr.dll
bin\javacpl.cpl
lib\deploy.jar
lib\plugin.jar
lib\deploy\*
lib/jfxswt.jar
bin\decora-sse.dll
bin\fxplugins.dll
bin\glass.dll
bin\glib-lite.dll
bin\gstreamer-lite.dll
bin\javafx-font.dll
bin\javafx_font_t2k.dll
bin\javafx-iio.dll
bin\jfxmedia.dll
bin\jfxwebkit.dll
bin\prism_common.dll
bin\prism-d3d.dll
bin\prism_es2.dll
bin\prism_sw.dll
排除此文件后,它的大小为 107 mb。但是我需要为我的应用程序设置 60 mb 或 70 mb 的 jre 大小,我的应用程序的主要部分也在下面给出。
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHandler;
公共静态无效主要(字符串[]参数){
try {
//LOGGER.info("Application started");
Server server = new Server(8680);
//LOGGER.info("Application started1");
ServletHandler servletHandler = new ServletHandler();
server.setHandler(servletHandler);
//LOGGER.info("Application started2");
servletHandler.addServletWithMapping(HelloServlet.class, "/");
server.start();
server.join();
} catch (Exception ex) {
LOGGER.info(" " + ex.getLocalizedMessage());
}
}
默认 jre 大小为 170 mb。但是对于这个应用程序,我只需要 60 mb 或 70 mb 大小的 jre。现在我可以做些什么来使 jre 的大小为 60 mb 或 70 mb。
解决方案
如果您不使用 Javafx,那么删除“bin\jfxwebkit.dll”文件会有所帮助,因为它超过 50 MB。