Как правильно подписывать JAR-файлы

447
04 сентября 2017, 05:08

Ребят, всем привет.

Такая ситуация. Работаю над клиентским приложением, написанным на Java. Приложение состоит из 2-х jar-модулей и набора библиотек. Изначально приложение было подписано сертификатом разработчика, после чего длительное вермя не менялось и использовалось на предприятии. Спустя какое-то время, предприятию захотелось нового функционала и исправления некоторых багов, для чего приложение было отдано нам на аутсорс.

Проблема в том, что они дали исходники, но не предоставили сертификата, которым мы должны подписать приложение, а компания-разработчик прекратила свое существование. Я пробовал использовать сгенерированный сертификат и не подписывать приложение вовсе (результат один и тот же - очень долгий запуск приложения (было 20 сек., стало 3 мин.)). Но тем не менее, приложение в итоге запускается и работает как надо.

Внимание, вопрос. Чем вызван такой долгий запуск, и как этого избежать?

Некоторые подробности:

  1. Я использую jdk1.6.0_45, NetBeans 8.2, Tomcat7
  2. Приложение состоит из JNLP-скрипта, главного модуля и набора библиотек в JAR
aopalliance.jar 
appframework-1.0.3.jar 
commons-beanutils-1.8.3.jar 
commons-codec-1.4.jar 
commons-collections-3.2.1.jar 
commons-digester-2.0.jar 
commons-httpclient-3.0.1.jar 
commons-lang-2.4.jar 
commons-logging-1.1.1.jar 
hibernate3.jar 
hibernate-jpa-2.0-api-1.0.1.Final.jar 
jasperreports-5.1.0.jar 
log4j-1.2.15.jar 
looks-2.3.1.jar 
org.springframework.aop-3.0.0.RELEASE.jar 
org.springframework.asm-3.0.0.RELEASE.jar 
org.springframework.beans-3.0.0.RELEASE.jar 
org.springframework.context-3.0.0.RELEASE.jar 
org.springframework.core-3.0.0.RELEASE.jar 
org.springframework.expression-3.0.0.RELEASE.jar 
org.springframework.web-3.0.0.RELEASE.jar 
slf4j-api-1.6.4.jar 
slf4j-log4j12-1.6.4.jar 
swing-worker-1.1.jar 
swingx-1.6.1.jar 
swingx-beaninfo-1.6.1.jar
  1. Есть пара похожих обсуждений: https://bugs.openjdk.java.net/browse/JDK-8133095 https://stackoverflow.com/questions/19449738/long-startup-delay-for-java-webstart-application-since-java-1-7-0u40

  2. Журнал Java первоначальной версии приложения включает в себя след. сообщения (в отличие от моей версии):

security: User has granted the priviledges to the code for this session only 
security: Adding certificate in Deployment session certificate store 
security: Added certificate in Deployment session certificate store 
security: Saving certificates in Deployment session certificate store 
security: Saved certificates in Deployment session certificate store 
basic: LD - All JAR files signed: http://192.168.0.13/launch-all.jnlp 
basic: passing security checks; secureArgs:false, allSigned:false 
basic: trusted app: true, -secure=false basic: DefaultMatchJRE: JREDesc: JREDesc[version 1.5+, heap=-1--1, args=null, href=null, sel=true, null, null] JREInfo: JREInfo for index 1: platform is: 1.6 product is: 1.6.0_45 location is: http://java.sun.com/products/autodl/j2se path is: C:\Program Files\Java\jdk1.6.0_45\jre\bin\javaw.exe args is: null native platform is: Windows, amd64 [ x86_64, 64bit ] enabled is: true registered is: true system is: true
Init Heap: -1 Max Heap: 67108864 Satisfying: false, true SatisfyingVersion: true SatisfyingJVMArgs: false, true SatisfyingSecure: false Selected JVMParam: [JVMParameters: isSecure: false, args: -Dhttp.server.host=192.168.0.13 -Dhttp.server.port=80 -Dapp.location=ALL] Running JVMParam: [JVMParameters: isSecure: true, args: ] basic: continuing launch in this VM

Всем спасибо!

READ ALSO
Как в for цикле подставлять входные данные? Java

Как в for цикле подставлять входные данные? Java

Всем приветЕсть вот такой код

367
Как по ASCII коду получить символ?

Как по ASCII коду получить символ?

У меня в программе есть JTextAreaТакже я из файла получаю массив ASCII кодов

403
преобразовать for в виде jstl тега

преобразовать for в виде jstl тега

нужна помощь, заменил данную конструкцию

365
SimpleDateFormat не правит дату по заданному шаблону

SimpleDateFormat не правит дату по заданному шаблону

Пользователь выбирает дату в DatePicker, после чего она записывается в TextInputEditText в формате "числомесяц

382