yguard:错误混淆java类不支持的类文件主要版本61



我正在将我的项目从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',但运气不好。

在github中询问,实际的yguard版本(3.0.0)不支持java 17。现在切换到openjdk 11

截至今天,最新的3.1.0版本声称支持JDK 17。

最新更新