ユーザ用ツール

サイト用ツール


mae3xx_tips:build_openjdk:shrink_with_jlink_compact3:start

jlink による容量の削減・最適化

Java 9 から新機能 Project Jigsaw でモジュール機能が追加されました。
これを用いて MA-E3xx の Java SE Embedded 8 でインストールしていたのに相当する JRE を作成します。

Oracle JDK Migration Guide - Removed Tools Support for Compact Profiles より、各 compact profile に指定されたモジュールは下記のとおりとなります。

compact1 compact2 compact3
java.base
java.logging
java.scripting
java.rmi
java.sql
java.xml
java.compiler
java.instrument
java.management
java.naming
java.prefs
java.security.jgss
java.security.sasl
java.sql.rowset
java.xml.crypto


compact3 相当1)を作成してみます。

bionic64:~/src/openjdk-jdk11u$ jlink --vm=server --output ../jre11_compact3 --module-path build/linux-arm-normal-clientANDserverANDminimal-release/images/jdk/jmods \
 --strip-debug --add-modules java.base,java.logging,java.scripting,java.rmi,java.sql,java.xml,java.compiler,java.instrument,java.management,java.naming,java.prefs,java.security.jgss,java.security.sasl,java.sql.rowset,java.xml.crypto \
 --no-header-files --no-man-pages


–output で指定したディレクトリに最適化された JRE が作成されます。

bionic64:~/src/openjdk-jdk11u$ ls -ln ../jre11_compact3
合計 20
drwxrwxr-x  2 1000 1000 4096 12月 27 09:41 bin
drwxrwxr-x  3 1000 1000 4096 12月 27 09:41 conf
drwxrwxr-x 18 1000 1000 4096 12月 27 09:41 legal
drwxrwxr-x  5 1000 1000 4096 12月 27 09:41 lib
-rw-rw-r--  1 1000 1000  256 12月 27 09:41 release
bionic64:~/src/openjdk-jdk11u$ du ../jre11_compact3
16	../jre11_compact3/conf/security/policy/limited
12	../jre11_compact3/conf/security/policy/unlimited
36	../jre11_compact3/conf/security/policy
88	../jre11_compact3/conf/security
104	../jre11_compact3/conf
60	../jre11_compact3/bin
4	../jre11_compact3/legal/java.scripting
48	../jre11_compact3/legal/java.xml
76	../jre11_compact3/legal/java.base
4	../jre11_compact3/legal/java.management
4	../jre11_compact3/legal/java.compiler
4	../jre11_compact3/legal/java.transaction.xa
4	../jre11_compact3/legal/java.security.jgss
4	../jre11_compact3/legal/java.instrument
4	../jre11_compact3/legal/java.sql.rowset
4	../jre11_compact3/legal/java.rmi
16	../jre11_compact3/legal/java.xml.crypto
4	../jre11_compact3/legal/java.logging
4	../jre11_compact3/legal/java.naming
4	../jre11_compact3/legal/java.prefs
4	../jre11_compact3/legal/java.sql
4	../jre11_compact3/legal/java.security.sasl
196	../jre11_compact3/legal
11804	../jre11_compact3/lib/server
64	../jre11_compact3/lib/jli
356	../jre11_compact3/lib/security
46612	../jre11_compact3/lib
46980	../jre11_compact3


これを MA-E3xx 実機に転送して実行してみます。

user1@plum:/tmp$ jre11_compact3/bin/java -version
openjdk version "11.0.1" 2018-10-16
OpenJDK Runtime Environment (build 11.0.1+13-centurysys-1-MAE3xx)
OpenJDK Server VM (build 11.0.1+13-centurysys-1-MAE3xx, mixed mode)

Java 11 が動作するところまで確認できました。


1)
vm=server で作成していますが、client のほうが良いかもしれません、お好みで
mae3xx_tips/build_openjdk/shrink_with_jlink_compact3/start.txt · 最終更新: 2018/12/27 09:46 by admin