2010-04-01 2 views
2

여러 사용자가 사용하는 다양한 Java Swing 응용 프로그램이 있습니다. 내 배포 전략은 네트워크 공유에서 .jar 파일을 찾고 사용자가 해당 파일에 대한 바로 가기를 만드는 것입니다. 사용자가 응용 프로그램을 시작하면 파일이 컴퓨터로 복사되고 로컬로 실행됩니다. 이 방법은 코드의 단일 복사본을 허용하고 쉽게 업데이트 할 수 있습니다.더 나은 Java 응용 프로그램 배포 전략 필요

문제는 사용자가 그 당시 응용 프로그램을 사용하고 있으면 네트워크 공유에서 파일을 업데이트 할 수 없다는 것입니다.

jar에 서명하기 위해 cert에 액세스 할 수 없어 Web Start를 사용할 수 없습니다.

현재 해결 방법은 원하는 응용 프로그램을 사용자의 로컬 컴퓨터에 복사하고 응용 프로그램을 시작한 다음 실행 프로그램을 종료하는 별도의 응용 프로그램입니다. 실행기 앱이 종료되고 사용자의 앱이 표시 될 때까지 몇 초 후에 지연됩니다.

누구나 쉽게 Windows XP에서 파일의 잠금을 유지하지 않는 응용 프로그램의 중앙 복사본을 쉽게 업데이트 할 수있는 더 나은 배포 방법을 제안 할 수 있습니까?

업데이트 : JSmooth 메서드는 필수적인 문제를 해결합니다. JSmooth에 의해 생성 된 .exe는 사용 중 잠긴 상태이지만 응용 프로그램 기능이 포함 된 .jar 파일은 업데이트 될 수 있습니다.

답변

7

은 자체 서명 된 인증서를 사용하여 파일에 서명 할 수 있으므로 Java Web Start를 사용하십시오. 이렇게하면 사용자가 한 번만 받아 들일 수있는 경고를 줄 수 있습니다.

이렇게하면 원하는대로 할 수있는 유일한 표준 자바 방식이므로이 방법을 사용하는 것이 좋습니다. 합리적으로 잘 작동합니다. 최신 Java 6 업데이트로 많은 새롭고 유용한 기능을 얻을 수 있습니다.

조언 : 새 버전을 출시 할 때 JNLP 파일 내부의 jar 파일을 가리키는 URL이 변경되도록 jars를 새로운 위치에 배치하십시오! 이것은 Java Web Start가 jar 파일을 캐시하기 때문입니다. 이것이 캐시가 정확하다는 것을 확인한 가장 좋은 방법입니다.


편집 : 난 당신이 투명하게 로컬 컴퓨터의 다양한 파일을 추출하고이를 실행하는 EXE 파일에 자바 파일을 래핑하는 JSmooth를 사용할 수 있다고 생각합니다. 이렇게하면 원래 EXE 파일이 잠기지 않습니다. 그러나 Web Start 방식을 사용하는 것이 좋습니다.

+0

사실, Web Start는 정확히 이것을 위해 설계되었습니다. JNLP라는 약어는 'Java Network Launching Protocol'을 의미합니다. –

+0

+1 JWS 일명 Java Web Start, 자동 업데이트, 중앙 위치에서 앱 배포 용이 –

관련 문제