독립 실행 형 Java 응용 프로그램이 있습니다. 현재이 자바 애플리케이션은 Windows에서 시작 스크립트 (startApplicatoin.bat)를 사용하고 Linux에서는 startApplicatoin.sh를 사용하여 클래스 경로를 설정 한 다음 java -classpath를 실행하여 실행합니다.외부 스크립트에서 Java 응용 프로그램 시작/중지
이제 stopApplication.bat 및 stopApplication.sh 스크립트를 추가해야합니다. 이 중지 스크립트는 정상적으로이 Java 응용 프로그램을 종료/종료해야합니다.
내가 다음 단계를 계획하고이를 달성하기1 내 자바 응용 프로그램이 알려진 파일에서는 MyApplication에 즉 파일에 실행 된 응용 프로그램의 프로세스 ID를 저장합니다 실행
. pid.프로세스 ID를 얻기 위해 ManagementFactory.getRuntimeMXBean(). getName() 호출은 Linux와 Windows 모두에서 작동합니다. 그래서 나는 이런 식으로 프로세스 ID를 수집하고이를 myapplication.pid라는 지정된 파일에 저장합니다.
2. 그런 다음 응용 프로그램 중지 스크립트를 실행하면이 스크립트는 해당 myapplication.pid 파일에 지정된 process-id에 "kill"요청을 발행합니다.
Windows의 경우 "taskkill"명령을 실행하여이 응용 프로그램을 중지해야합니다. 그리고 리눅스 환경에서는 "kill"명령이 그 목적을 달성 할 것입니다.
그리고 내 Java 코드에서 addShutdownHook을 추가하여 실행하려는 정상적인 종료 작업을 가능하게 할 것입니다. 즉,이 프로그램이 중단되기 전에 내가 원하는 모든 것을 처리해야합니다.
지금 내가 생각하고 길을 보장하기 위해 온 전성 검사를 수행하고 싶은 것은 할 수있는 적절한 방법입니다. 아니면 이것을 할 수있는 더 좋은 방법이 있습니다. 모든 제안을 부탁드립니다. 그리고 미리 감사드립니다.
사용자 이름을 좋아합니다. 답변도 좋습니다 ;-) – GojiraDeMonstah