我将我的项目从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意味着-> 17,所以我试着将工作空间遵从性更改为‘编译器遵从性级别java 11',但没有成功。
发布于 2021-09-29 06:15:25
在github中询问,实际的yguard版本(3.0.0)不支持java 17。现在正在切换到openjdk 11。
https://stackoverflow.com/questions/69361145
复制相似问题