2016-07-19 1 views
-1

자체를 업데이트 할 수있는 응용 프로그램만큼 간단합니다. 더 구체적으로, 웹에서 jar 파일을로드하고 현재 jar로 대체하는 시작 프로그램 일 수 있습니다. 내가 원하는어떻게 자동으로 자체 업데이트되는 Java 응용 프로그램을 만드시겠습니까?

접근 방식은 다음과 같습니다

  • 자바로 코딩 된 발사기.
  • 실행기는 전반적으로 클래스 로더 e.t.c를 사용합니다.
  • 이전 jar의 데이터를 유지하려고합니다. 어쩌면 이전 항아리의 데이터가 .txt 파일에 기록되어 새로운 파일로 전달 될 수 있습니까? (가능한 경우)

나는 클래스 로더 또는 따라야 할 방향에 대한 단서가 없습니다. 내 질문은 "어떻게 클래스 로더를 사용하여 자동 업데이트 Java 응용 프로그램을 만들 수 있습니까?".

P.S. 나는 자바 웹 시작이 마지막 선택이되기를 원한다. 코드의 일부 라인이 나에게 많은 도움이 될 것입니다.

편집 : 나는 이론적으로 당신이 말하는 것을 완전히 이해합니다. 내가 뭘 찾고 또는 코드참조으로 걸릴 수 있습니다 구체적인 특정입니다. 링크 나 코드가 있지만 이론을 찾을 수 없기 때문에 질문이 중복되지 않습니다.

+0

나는 왜 당신이'Classloader'에 고정 시켰는지 확신하지 못한다. 당신이 생각하는 것처럼 보이지 않는다. 웹에서 업데이트가 필요한지 확인하기 위해 액세스 할 수있는 코드 (실제 응용 프로그램과 무관 한 코드)를 찾고 있다면 다운로드하십시오. 완료되면 응용 프로그램의 현재 jar 파일을 새로 다운로드 한 파일로 덮어 써야합니다. –

+1

@AndrewG 클래스 로더의 아이디어는 [link] (http://stackoverflow.com/questions/4002462/how-can-i-write-a-java-application-that-can-update-itself-at-runtime ? rq = 1). 그러나 나는 당신에 동의한다. 아직도 어떤 방향으로 나를 따라갈 수 있습니까? –

답변

0

URLClassLoader를 사용하여 URL에서 jar 파일을로드 할 수 있습니다. URL은 로컬 파일 일 수도 있으므로 jar 파일을로드하기 전에 웹에서 직접로드하는 대신 jar 파일을 로컬로 다운로드하는 것이 좋습니다. 그 이유는 사용자가 서버에 연결할 수없는 경우에도 응용 프로그램을 계속 사용할 수 있기를 원하기 때문입니다.

그러나이 방법을 사용하지 않는 것이 좋습니다. 런처를 업데이트하려면 어떻게해야합니까? 주 응용 프로그램에서 별도의 업데이터 응용 프로그램을 다운로드하고, 별도의 업데이터 응용 프로그램을 실행하고, 주 응용 프로그램을 종료하고 업데이트하는 것이 좋습니다.

+0

답변 해 주셔서 감사합니다. 내가 편집에서 말했듯이, 내가보기에 당신이 지적 할 수있는 구체적인 것이 있습니까? –

+0

여기에 어떤 종류의 코드 예제가 있는지 확실하지 않습니다. 이것은 다소 일반적인 문제입니다. 누군가 자신의 접근 방식에 대해 블로깅을했습니다. http://masterex.github.io/archive/2011/12/25/jupar.html 보고 싶은 특정 비트가 있습니까? – WouterH

+0

아니,이게 정확히 내가 원하는거야. 참고 문헌은 공부하고 모든 것이 어떻게 작동하는지 볼 수 있습니다. 시간 내 줘서 고마워! –

관련 문제