하나의 어플리케이션만 띄우고 싶은데 잘 모르겠어요..
개럭시
자바로..
여러번 실행해도 하나의 어플리케이션만 띄워져 있는 프로그램을 만들어보고 싶은데요..
예를 들어서..
네이트온 같은 프로그램요..
한번 띄우면.. 다시 실행해도 두개뜨진 않잔아요..
이클립스도.. 다시 띄우면 이미 실행되어있다고 나오고...
근데 방법을 모르겠네요..
어떻게 해야될지.. 검색해도 통 나오질 안네요..
조언부탁드립니다(__)
-
한내
그렇군요.. 파일에 남겨볼까.. 까지 생각해봤는데 역시 제가만든건 허접할거란 생각에 비정상종료를 생각안할 수가 없더라구요 ㅋ
포트체크.. 그런 방법이 있었구나..
어플리케이션이랑 jvm과 통신해서 쓰레드들을 알 수 있는 메소드같은게 있지 않을까했었는데..음..
암튼 다들 답변 감사합니다~ 꾸벅~ -
큰길
Java의 경우 포트 방법이 일반적일텐데...
문제는... 쉽사리 사용하지 않는 포트 선택하셔야 할 거예요^^;;
사용자마다 포트가 좀 애매해서...
어떤 사용자는 띄워보지도 못 하고 이미 실행중이라는 메시지를 볼 수 있어서...
환경파일등으로 빼서 관련 내용을 공지한다면야 다르겠지만...^^
파일이 편한지 포트가 편한지등에서 결정하시면 되리라 봅니다.
Java도 임시파일이나 종료이벤트 캐치등은 가능하니..
아니면 윈도우즈등으로 제한하셔서 프로세서 확인 -
해늘
참고로 윈도우용 exe 파일 등은 현재 사용 중인 프로세서를 확인해서 실행하지 않게 하는 방법도 있습니다
-
새론
파일을 남기는 방법은 위와 같이 비정상적인 종료에 대처하지 못하기 때문에,
프로그램이 실행될때 네트워크 socket의 port를 하나 열어놓고,
다음에 또 수행할때, 특정 port로 접근이 가능하면 이미 떠 있는것이기 때문에 죽으면 됩니다.
그이외에 각종 편법들이 있을수 있지요. -
빛솔
이클립스 프로그램을 띄우면 워크스페이스에 .lock라는 파일을 만들어 냅니다.
그래서 .lock라는 파일이 있으면 해당 워크스페이스가 사용중이라고 알고 다시는 안 띄웁니다.
이클립스가 죽을때 .lock라는 파일을 지우게 되지요.
그렇기 때문에 이클립스가 비정상종료를 하는 경우에는 .lock 파일이 남아 있어서,
해당 워크스페이스를 사용하지 못하는 경우가 있습니다.
이때에는 워크스페이스하위 디렉토리에 잘 뒤져보면 있는 .lock 파일을 지워주면 됩니 -
큰모음
아.. 이클립스는 워크스페이스선택하는 창이 나오는군요..; 윽.. 힌트라도 좀.. ㅠㅠ