构建自定义JDK,删除无用的库

时间:2016-06-22 11:04:30

标签: java java-8

如何从JDK中删除无用的库并且它可能?

enter image description here

1 个答案:

答案 0 :(得分:9)

是的,这是可能的documented by Oracle

对于我们的项目,我们使用以下"清理脚本"。您的可能会有所不同,请参阅注释(例如:我们不使用JavaFX)。

#!/bin/sh
# Remove all not-needed files, see http://www.oracle.com/technetwork/java/javase/jre-8-readme-2095710.html
# Documentation
rm -f jre/README.txt
rm -f jre/THIRDPARTYLICENSEREADME.txt
rm -f jre/THIRDPARTYLICENSEREADME-JAVAFX.txt
rm -f jre/Welcome.html
# optional files 
rm -f jre/lib/ext/jfxrt.jar
rm -f jre/lib/ext/access-bridge.jar
rm -f jre/lib/ext/access-bridge-32.jar
rm -f jre/lib/ext/nashorn.jar
rm -f jre/bin/rmid.*
rm -f jre/bin/rmiregistry.*
rm -f jre/bin/tnameserv.*
rm -f jre/bin/keytool.*
rm -f jre/bin/kinit.*
rm -f jre/bin/klist.*
rm -f jre/bin/ktab.*
rm -f jre/bin/policytool.*
rm -f jre/bin/orbd.*
rm -f jre/bin/servertool.*
rm -f jre/bin/javaws.*
rm -f jre/lib/jfr.*
# can be deleted when private application runtime is used (like launch4j)
rm -f jre/bin/java.exe
# launch4j uses javaw.exe. So do NOT delete!
rm -f jre/bin/javacpl.exe
rm -f jre/bin/jabswitch.exe
rm -f jre/bin/java_crw_demo.dll
rm -f jre/bin/JavaAccessBridge-32.dll
rm -f jre/bin/JavaAccessBridge.dll
rm -f jre/bin/JAWTAccessBridge-32.dll
rm -f jre/bin/JAWTAccessBridge.dll
rm -f jre/bin/WindowsAccessBridge-32.dll
rm -f jre/bin/WindowsAccessBridge.dll
rm -f jre/bin/wsdetect.dll
rm -f jre/bin/deploy.dll
rm -f jre/bin/javacpl.cpl
rm -f jre/lib/deploy.jar
rm -f jre/lib/plugin.jar
rm -Rf /s /q jre/bin/dtplugin
rm -Rf /s /q jre/bin/plugin2
rm -Rf /s /q jre/lib/deploy
# JavaFX related
rm -f jre/lib/javafx.properties
rm -f jre/lib/jfxswt.jar
rm -f jre/bin/decora_sse.dll
rm -f jre/bin/fxplugins.dll
rm -f jre/bin/glass.dll
rm -f jre/bin/glib-lite.dll
rm -f jre/bin/gstreamer-lite.dll
rm -f jre/bin/javafx_font.dll

Windows版本:

:: Remove all not-needed files, see http://www.oracle.com/technetwork/java/javase/jre-8-readme-2095710.html
:: Documentation
del jre\README.txt
del jre\THIRDPARTYLICENSEREADME.txt
del jre\THIRDPARTYLICENSEREADME-JAVAFX.txt
del jre\Welcome.html
:: optional files 
del jre\lib\ext\jfxrt.jar
del jre\lib\ext\access-bridge.jar
del jre\lib\ext\access-bridge-32.jar
del jre\lib\ext\nashorn.jar
del jre\bin\rmid.*
del jre\bin\rmiregistry.*
del jre\bin\tnameserv.*
del jre\bin\keytool.*
del jre\bin\kinit.*
del jre\bin\klist.*
del jre\bin\ktab.*
del jre\bin\policytool.*
del jre\bin\orbd.*
del jre\bin\servertool.*
del jre\bin\javaws.*
del jre\lib\jfr.*
:: can be deleted when private application runtime is used (like launch4j)
del jre\bin\java.exe
:: launch4j uses javaw.exe. So do NOT delete!
del jre\bin\javacpl.exe
del jre\bin\jabswitch.exe
del jre\bin\java_crw_demo.dll
del jre\bin\JavaAccessBridge-32.dll
del jre\bin\JavaAccessBridge.dll
del jre\bin\JAWTAccessBridge-32.dll
del jre\bin\JAWTAccessBridge.dll
del jre\bin\WindowsAccessBridge-32.dll
del jre\bin\WindowsAccessBridge.dll
del jre\bin\wsdetect.dll
del jre\bin\deploy.dll
del jre\bin\javacpl.cpl
del jre\lib\deploy.jar
del jre\lib\plugin.jar
rmdir /s /q jre\bin\dtplugin
rmdir /s /q jre\bin\plugin2
rmdir /s /q jre\lib\deploy
:: JavaFX related
del jre\lib\javafx.properties