Создать файл JAR, который может быть выполнен только?

#java #eclipse #build #jar #source-code-protection

#java #eclipse #сборка #jar #защита исходного кода

Вопрос:

Мой проект не завершен, но я хотел бы распространить несколько демонстрационных версий.

Есть ли способ создать исполняемый файл JAR, который не будет предоставлять пользователям доступ к его классам (например, при импорте в Eclipse)?

Комментарии:

1. Если вы говорите «классы», вы имеете в виду файлы .class или файлы .java? Если последнее: тогда не включайте их в jar 🙂

Ответ №1:

Нет, файл jar — это zip-файл, и нет никакого способа помешать вашим пользователям заглянуть в него — потому что JVM должна заглянуть внутрь него, чтобы запустить его.

Однако вы можете:

  • Попробуйте преобразовать его в собственный исполняемый файл (для этого есть несколько инструментов)
  • Запустите над ним обфускатор (для этого есть еще больше инструментов)

Мой опыт работы с обфускаторами заключается в том, что они недостаточно хорошо справляются с задачей, чтобы остановить кого-то, кто действительно увлечен. Я пробовал запускать декомпиляторы для различных запутанных классов, и они все еще достаточно просты для понимания.

Если вас интересует собственный путь к exe, то эта статья может помочь.

Вообще говоря, я не думаю, что это стоит продолжать. Если то, что вы распространяете, достаточно ценно для людей, которым вы его предоставляете, тогда они найдут способ копаться внутри, если захотят. Или, если они заслуживают доверия, они этого не сделают. Но технологические решения, вероятно, этого не изменят.

Ответ №2:

Ваши единственные надежды связаны с запутыванием или шифрованием. Ни то, ни другое не так уж и здорово с точки зрения защиты от решительного игрока в покер. Вы уверены, что оно того стоит?

ProGuard — это бесплатный обфускатор (среди прочего). Шифровальщики используют пользовательские загрузчики классов для расшифровки зашифрованного байтового кода при загрузке.

Ответ №3:

Вы пробовали Экспортировать> Java> Runnable JAR-файл в Eclipse?