Как сделать Java-программу невыразимой

Извините, я не очень уверен, как сформулировать название вопроса. Моя проблема заключается в следующем: я разработал программу на Java и хочу распространить ее среди своих друзей. Поэтому я экспортирую его в файл Jar, но я не хочу, чтобы они извлекали файл JAR для просмотра кода. Есть ли способ сделать программу так, чтобы никто не мог получить исходный код, а просто запустить программу.

7 ответов

Решение

Похоже, вы путаете приложение установки с исполняемым файлом. И я также думаю, что вы путаете приложение java jar с обычным.exe.

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

Java предназначена для работы на JVM, поэтому ее упаковка в.exe является плохой формой, поскольку она немедленно блокирует ее в Windows, что в первую очередь наносит ущерб точке Java. Поэтому я бы посоветовал против этого.

Как все заявляют, редко, если ваша программа работает хорошо и вам нравится пользователям, что они даже подумают, чтобы декомпилировать ее. Но если они хотят, то они всего лишь один поиск в Интернете от как до (независимо от языка). Что касается коммерческого распространения, то в большинстве случаев программное обеспечение запутывается и распространяется в своем.jar, с помощью специфичного для архитектуры средства запуска в формате.exe, .app, .bin и т. Д. Не путайте их с реальным исполняемым файлом, который обычно является файл.jar где-то

Вы всегда можете получить исходный код из скомпилированных файлов классов. Однако вы можете сделать жизнь тех, кто хочет декомпилировать такой код, очень сложной, используя обфускатор, поэтому декомпилированный код почти невозможно прочитать. Вот список java-обфускаторов с открытым исходным кодом, которые вы можете исследовать.

Если компьютер может запустить его, человек может реконструировать его.

Правда в том, что никто не хочет ваш исходный код. Довольно высокомерно думать, что это стоило бы усилий, необходимых, чтобы не пускать их.

Лучшее, что вы можете сделать, это запутать.

  1. Термин, который вы ищете, это запутывание. в конечном счете
At best, obfuscation merely makes it time-consuming, but not impossible,

перепроектировать программу.

  1. Другая техника - SaaS. Хотя, в конечном счете, с использованием методов "черного ящика" SaaS также может быть реверсивно разработан.
  2. Другая техника - это доверие. Поскольку вы распространяете его среди своих друзей, вы можете попросить их не извлекать файл JAR и не просматривать код. Если они действительно ваши друзья, они выполнят вашу просьбу.

Файлы Jar обычно не содержат код. Они обычно содержат только .class (байт-код) файлы, необходимые для запуска программы.

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

Затем вы можете разослать клиентов всем и сохранить код сервера для себя. Просто продолжайте работу сервера. Тогда другие не могут получить доступ ко всему источнику, но могут запустить программное обеспечение.

Это единственный верный способ сделать это. Другие способы могут быть обойдены в некотором роде с достаточным усилием.

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