Создать файл JAR, который может быть выполнен только? - PullRequest
1 голос
/ 28 октября 2011

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

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

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

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

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

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

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

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

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

2 голосов
/ 28 октября 2011

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

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

0 голосов
/ 31 октября 2011

Вы пробовали в Eclipse параметр «Экспорт»> «Java»> «Запускаемый файл JAR»?

...