안녕하세요 스택 오버플로 친구. 나는 간단한 해결책을 갖고있는 두려움이없는 간단한 문제가 있으며 진행 방법에 대한 조언이 필요하다. 나는 실행 가능한 JAR로 패키징 된 자바 애플리케이션을 개발 중이다.하지만 실행 중에 JAR 파일 내용을 수정해야한다. 일부 OS는 파일을 잠그기 때문에이 단계에서 문제가 발생합니다.수정 실행 Jar 파일
사용자가 응용 프로그램을 종료 할 때까지 jar 파일의 업데이트 된 버전을 볼 수 있어야합니다. 그러나이 방법은 상당히 유연 할 수 있습니다. 깨끗하고 효율적인 솔루션이 분명히 선호되지만 이식성은 유일한 어려운 요구 사항입니다.
다음은 문제를 해결할 수있는 3 가지 접근 방식입니다. 문제에 대해 의견을 말하고 다른 사람들에게 자유롭게 의견을 제시 할 수 있습니다.
- (이 나던 가능 보인다하지만 easyest 해결책이 될 것이다) 작성에 대한 JAR 파일의 잠금을 해제하기 위해 자바에게 응용 프로그램 시작에 tempory 파일의 실행 클래스 파일
- 복사를로드하는 클래스 로더를 사용 이 파일들을 초기 JAR 파일에서 언로드하십시오. (클래스 로더에 대한 많은 경험이 없지만 JVM이 원래의 JAR이 더 이상 사용되지 않으므로 잠금 해제하기에 충분히 똑똑 할 것입니다.)
- 두 번째 넣기 실행 가능한 JAR 파일 시작, 시작시 내부 임시 파일을 임시 파일로 추출하고, 복사 된 내부 JAR을 사용하여 새 Java 프로세스를 호출하고 외부 JAR, 첫 번째 프로세스의 위치를 전달하십시오 종료, 두 번째 과정은 unincumbered 바깥 항아리를 modifys. (이 작동하지만 하나 개의 자바 앱이 다른 호출의 플랫폼 독립적 인 방법이 확실하지 메신저 것이다) 나는이 이상한 질문이지만 어떤 도움을 주시면 감사하겠습니다 알고
가 .
실행하는 동안 jar 파일을 수정해야하는 이유에 대해 알려 줄 수 있습니까? – Poindexter
@pinkynobrain 당신은 예전의 개미 식으로 생각하고 있습니다. 예를 들어 무료 전자 서적으로 Maven을 읽으시 고 제안하시는 것이 의미가 없다는 것을 알게 될 것입니다. 나는 당신을 도우려고 노력하는 것이 아닙니다. .. 우리 모두가 거기에 없었어요 – ant
달성하기 위해 무엇을하려합니까 - 자체 업데이트 응용 프로그램? –