Java jlink是否仍需要模糊处理(即,是否可以对模块文件运行反编译器)?

Java jlink是否仍需要模糊处理(即,是否可以对模块文件运行反编译器)?,java,obfuscation,deobfuscation,jlink,Java,Obfuscation,Deobfuscation,Jlink,在Java8中,我需要为应用程序混淆jar/类文件。我正在将这个应用程序迁移到Java10,并且我还在更新构建过程以使用模块,这样我们就不必提供完整的JRE 当我使用模块编译(javac),然后构建精简的JRE(jlink)时,我注意到dist/lib/modules文件就是包含编译代码的文件。然而,当我检查dist/lib/modules时,这个文件不是ZIP文件,看起来我的代码也不可见 有没有反编译dist/lib/modules的方法?在调用jlink之前,我是否应该混淆我的*.class

在Java8中,我需要为应用程序混淆jar/类文件。我正在将这个应用程序迁移到Java10,并且我还在更新构建过程以使用模块,这样我们就不必提供完整的JRE

当我使用模块编译(javac),然后构建精简的JRE(jlink)时,我注意到dist/lib/modules文件就是包含编译代码的文件。然而,当我检查dist/lib/modules时,这个文件不是ZIP文件,看起来我的代码也不可见

有没有反编译dist/lib/modules的方法?在调用jlink之前,我是否应该混淆我的*.class文件

以下是我的构建流程示例:

javac -d my_module/out $(find my_module/src -name *.java)
jar cf libs/my_module-1.0.jar -C my_module/out .
javac -d out -p 'libs/my_module-1.0.jar' \
  src/module-info.java src/application/Main.java
jlink -p $JAVA_HOME/jmods:libs --add-modules com.application \
  --launcher start-application=com.application \
  --strip-debug --compress=2 \
  --output small-dist

jlink不会进行任何模糊处理。要提取模块,您可以使用“jimage提取”(请参阅)