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», но безуспешно.

2 ответа

На вопрос в github, актуальная версия yguard (3.0.0) не поддерживает java 17. К настоящему времени переключился на openjdk 11.

На сегодняшний день последняя версия 3.1.0 утверждает, что поддерживает JDK 17.

Другие вопросы по тегам