![](/img/trans.png)
[英]I want to use sqlserver dependency in maven project(jar) for jre6 which version I should use
[英]I have a old version jar,now I want to use jlink to generate a smaller jre,how to do it?
我有一個使用java8和maven的Java應用程序,現在我想使用jdk9生成一個較小的jre來與我的應用程序打包,該怎么做? 如果不可能,您能給我一個用jlink生成小jre演示的maven嗎?我的英語不太好,很抱歉,謝謝。
您可以使用JDeps分析對模塊的依賴性 :
jdeps -summary -recursive --class-path $libs $jar
將$libs
替換$libs
您所有的依賴項(即使是可 $libs
的依賴項, Maven可以將其復制 ),並將$ jar替換為您的應用程序JAR。 然后,輸出包含模塊依賴項列表(查找... -> java.*
和... -> jdk.*
)。
如果您使用的是Linux,則可以使用以下管道獲取模塊名稱的排序列表:
jdeps -summary -recursive --class-path 'jars/*' jars/app.jar
| grep '\-> java.\|\-> jdk.'
| sed 's/^.*-> //'
| sort -u
如果您使用的是Java 10或更高版本,則可以使用--print-module-deps
而不是-summary
。
獲取該列表並將其輸入到jlink
:
jlink
--module-path $jdk/jmods
--add-modules $modules
--output minimal-jre
如果您還想綁定所有平台服務,請輸入--bind-services
。
然后,以下行將列出您確定的所有模塊及其依賴關系,以及可能綁定的服務:
minimal-jre/bin/java --list-modules
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.