我正在将我的项目从 jdk1.8 切换到 openjdk 17。代码工作正常,ANT 可以生成可执行的 jar。使用 Eclipse IDE。
尝试使用 yguard 3.0.0(通过 ant)进行混淆时会出现问题。任务是:
<target depends="create_javafx_jar" name="ofuscaJars2">
<taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="${yguard}"/>
<echo level="info" message="OFUSCANDO JAR v2..." />
<if>
<available file="${dir.jarfile}/assistcontrol.jar" type="file" />
<then>
</then>
<else>
<fail message="Fichero ${dir.jarfile}/assistcontrol.jar no existe" />
</else>
</if>
<yguard>
<inoutpair in="${dir.jarfile}/assistcontrol.jar" out="${dir.obfuscatejar}/assistcontrol.jar" />
<shrink logfile="${shrinklog}">
<keep>
<!-- main method -->
<method name="void main(java.lang.String[])" class="core.MainClass" />
</keep>
</shrink>
<externalclasses description="JARs que son invocados por AssistControl, deben tenerse en cuenta en la ofuscación">
<fileset dir="${dir.jarfile}/jars">
<include name="**/*.jar"/>
</fileset>
</externalclasses>
<rename mainclass="core.MainClass" logfile="${dir.obfuscatejar}/renaming.xml" replaceClassNameStrings="true">
<property name="error-checking" value="pedantic"/>
</rename>
</yguard>
</target>
输出是:
[收缩] 错误:不支持的类文件主要版本 61 [收缩] 不支持的类文件主要版本 61
我知道 61 意味着 java 17,所以我尝试将工作区合规性更改为“编译器合规性级别 - > 11”,但没有运气。