我想計算並記錄模塊的哈希值,該模塊的哈希直接取決於正在更新的模塊化JAR文件。爲此使用--hash-modules
和--module-path
選項。 有我的嘗試:如何使用JDK 9 jar工具的--hash-modules和--module-path選項?
jar --hash-modules com.me.util --module-path "dist\com.me.jar;dist\com.me.util.jar" --update --file dist/com.me.jar --main-class=com.me.A --verbose --module-version 0.1 -C build/modules/com.me module-info.class build/modules/com.me/com/me/A.class build/modules/com.me/com/me/B.class
jar --hash-modules "com.me.util;com.me.util" --module-path "dist\com.me.jar;dist\com.me.util.jar" --update --file dist/com.me.jar --main-class=com.me.A --verbose --module-version 0.1 -C build/modules/com.me module-info.class build/modules/com.me/com/me/A.class build/modules/com.me/com/me/B.class
當我嘗試這樣做,我得到的警告信息:「沒有模塊被記錄在散列com.me」。
這些命令將無誤地創建* .jar文件(模塊),但不會添加任何哈希信息。我希望看到此信息並利用此功能(--hash-modules
和--module-path
選項)。請告訴我該怎麼做!
項目文件夾的完整結構可以找到here。
我使用jar工具的選項的實驗和工作示例是here。
在Java Platform, Standard Edition Tools Reference (jar)中描述的以下操作。
你做得很好。 –
如果你做了'jar --hash-modules「com.me.jar」--module-path「dist」--verbose --create --file dist/com.me.util.jar -C build/modules/com.me.util module-info.class build/modules/com.me.util/com/me/util/Util.class' AND 'jar --hash-modules「com.me.jar「--module-path」dist「-v -c -f dist/com.me.util.jar -C build/modules/com.me.util module-info.class build/modules/com.me.util/com/me/util/Util.class' –
第一個命令將重新創建jar文件,但不會添加哈希信息。將顯示警告信息: 警告:沒有模塊記錄在com中的哈希中。 me.util 添加清單 添加模塊信息:module-info.class 添加:com/me/util/Util.class(in = 411)(out = 268)(貶低34%) –