Я создаю настольное приложение с Kotlin, и я пытаюсь запутать окончательный вывод
Я работаю над приложением, используя JavaFx и Kotlin.Я работаю с Gradle в качестве инструмента для сборки и ищу, как запутать свою банку, чтобы избежать обратного инжиниринга на банке.Сгенерированная банка - это толстая банка (вся библиотека находится внутри банки).Я уже пытался использовать proguard в моем gradle.build, но каждый раз, когда я запускаю свою сборку, я получаю массу «не могу найти ссылочный класс» с собственным классом библиотеки Java, таким как Object, String и т. Д.
Здесьмоя текущая задача proguard:
def jarNameWithoutExtension = jar.archiveName.with {
it.take(it.lastIndexOf(".")) }
def obfuscatedJarName = "${jarNameWithoutExtension}-release.jar"
def jarFileLocation = jar.archivePath.parent
def obfuscatedFilePath = Paths.get(jarFileLocation, obfuscatedJarName)
task obfuscate(type: ProGuardTask) {
configuration 'proguard.txt'
injars jar.archivePath
outjars obfuscatedFilePath.toString()
libraryjars files(configurations.compile.collect())
libraryjars "/usr/lib/jvm/java-11-oracle/lib/rt.jar"
doLast {
jar.archivePath.renameTo(Paths.get(jarFileLocation, "$jarNameWithoutExtension-original.jar").toFile())
obfuscatedFilePath.toFile().renameTo(jar.archivePath)
}
}
jar.finalizedBy(project.tasks.obfuscate)
Файл proguard.txt в настоящее время пуст. Пример ошибки: «Предупреждение: javafx.animation.Animation: не удается найти суперкласс или интерфейс java.lang.Object»
Я ожидаю, что при сборке моего проекта будет создан запутанный файл jar, но все, что у меня есть, это ошибка компиляции
Я надеюсь, что кто-нибудь может помочь мне с моей проблемой