Как выполнить программу Java клиенту?

Хотя Вы - также разработчик .NET, , ссылка реализации Java грузового приложения от DDD Eric Evans и Citerus является хорошим ресурсом.

В коде doc'd, Вы видите DDD-организацию в ограниченные контексты и агрегируетесь в действии, прямо в пакетах Java.

Кроме того, Вы могли бы рассмотреть Billy McCafferty Архитектура Sharp . Это - ASP.NET MVC, реализация NHibernate/Fluent NHibernate, которая создается с DDD в памяти.

По общему признанию, необходимо будет все еще применить решение для папки/пространства имен обеспечить контексты. Но, свяжите подход Evans с #Arch, и необходимо хорошо быть на пути.

Сообщают нам то, с чем Вы идете. Я нахожусь на том же пути также, и недалеко от Вас!

Счастливое кодирование,

Kurt Johnson

5
задан David Koelle 13 October 2009 в 20:38
поделиться

7 ответов

В произвольном порядке:

2 - Есть продукты, которые выполняют обфускацию. Обычно они переименовывают классы / переменные / методы в однобуквенные имена. Это затрудняет определение ошибок, о которых сообщает пользователь. Трассировки стека, показывающие, что исключение происходит в abc, не особенно полезны.

1,3,4 - Вы не можете полностью избежать этого риска, если вы распространяете java. В какой-то момент ваш код нужно распаковать и загрузить. Если кто-то заменит rt.jar в jvm, он сможет заменить загрузчик классов верхнего уровня и таким образом выгружать ваши классы. Обфускация делает это менее полезным для них, но см. Вышеуказанное предостережение.

5 - Распространение "частного jre". По сути, у вас есть jre в папке с программой. Ваш сценарий запуска запускает его. Однако увеличивает размер вашего дистрибутива.

6 - В окнах, это будет проблема ассоциации файлов. Но это также повлияет на все остальные файлы jar. Если как часть 4 (однако вы справитесь с этим) вы также не используете другое расширение. Не уверен насчет других операционных систем.

7 - Использовать Java Web Start? В противном случае просто создайте файл на своем сервере со списком самой последней версии, получите файл и сравните его с установленной версией.

Для 1,2,4 и 5 вы также можете изучить возможность компиляции в собственный код с помощью gcj или аналогичного . Остерегайтесь проблем с совместимостью, если вы это сделаете.

выберите файл и сравните его с установленной версией.

Для 1,2,4 и 5 вы также можете изучить возможность компиляции в собственный код с помощью gcj или подобного. Остерегайтесь проблем с совместимостью, если вы это сделаете.

выберите файл и сравните его с установленной версией.

Для 1,2,4 и 5 вы также можете изучить возможность компиляции в собственный код с помощью gcj или подобного. Остерегайтесь проблем с совместимостью, если вы это сделаете.

9
ответ дан 18 December 2019 в 06:35
поделиться

Зашифруйте все файлы .class, чтобы никто не смог их декомпилировать. Как может Я зашифрую?

Вы не можете. Если никто не может его декомпилировать, как вы ожидаете, что целевая JVM будет работать?

После шифрования я хочу скрыть этот код, чтобы добавить дополнительные безопасность. Как я могу это сделать?

Я хочу добавить "серийный ключ" функциональность, так что программное обеспечение работает только после регистрации в предоставленный мной ключ. Это очень важно, чтобы предотвратить многопользовательский использование моего программного обеспечения. Как я могу добавить эти ключевые функции и как я могу генерировать ключи. И как я могу ограничить это программное обеспечение для работы только на одном компьютер.

Есть несколько способов сделать это, но самый простой - это криптография с открытым ключом:

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

Файл jar может распаковать и увидеть файл .class. Здесь любой способ обернуть файл jar в что-то, что никто не может распаковать этот файл.

Нет

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

Попробуйте создать установщик NSIS для вашего приложения, который обнаруживает / устанавливает Java и вашу программу.

7
ответ дан 18 December 2019 в 06:35
поделиться

Постройте более доверительные отношения со своими клиентами.

Затем вы можете потратить дополнительное время (не выполняя задачи 1-5), чтобы внести улучшения, исправить ошибки и т. Д., Что, в свою очередь, улучшит отношения с вашими клиентами.

4
ответ дан 18 December 2019 в 06:35
поделиться

Вы можете скомпилировать его с помощью GCJ , который скомпилирует ваше приложение в обычный исполняемый файл Windows / Linux (.exe). Затем вы можете создать установку с помощью такой программы, как InstallShield .

3
ответ дан 18 December 2019 в 06:35
поделиться

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

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


Что касается 6 : вы можете использовать JSmooth или аналогичный инструмент для создания exe-оболочки для вашего приложения. Это позволит вам изменить значок, и у ваших клиентов будет исполняемый файл, по которому они смогут дважды щелкнуть, не вмешиваясь в ассоциации файлов для файлов jar.
Однако обратите внимание, что сгенерированный exe не будет содержать Java или ваши файлы jar. Однако, если Java недоступна, будет выведено приятное сообщение об ошибке.

1
ответ дан 18 December 2019 в 06:35
поделиться

Просто добавлю к другим ответам здесь:

1 и 4 : вы действительно могли бы сделать это, если измените JVM и предварительно упакуйте ее вместе с вашей установкой, но это против лицензионного соглашения Java о распространении модифицированной JVM без выплаты Sun миллиарда долларов.

0
ответ дан 18 December 2019 в 06:35
поделиться

Кто ваш клиент? Piratebay.org? Серьезно, каждая крупная компания в США платит за программное обеспечение. Риск того, что клиент уйдет и позвонит ему, слишком высок. Вам нужна достаточная защита, чтобы программисту было проще получить покупку для оплаты продукта, чем обойти вашу защиту от копирования.

0
ответ дан 18 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: