한번만 실행시키기
여름
안녕하세요.
질문을 할려고 합니다.
자바 프로그램을 실행할때..
java app_Program이라는 형식으로 하는데요.
이걸 또 실행시키게 되면 실행이 안되게. 즉 한번 실행시킨 자바프로그램은
실행안돼게 하는 방법을 알고 싶습니다.
-
율아
여러가지 검색하다 발견한 것이 jps라는 툴입니다. jvm 상태 툴인데요.
이것을 사용하면 jvm이 실행하고 있는 클래스에 대한 리스트를 알수 있습니다.
이걸로 우선 저는 해결 했습니다. -
해찬솔
옷..특정파일/포트.. 좋은 방법이네요.. +_+ 클로버 뮤텍스/jsmooth라.. 지나가다 좋은 정보를 얻고 가네요..
-
무들
버섯수다님 말씀 이외에 클로버 뮤텍스를 이용하는 방법도 있습니다.
-
큰나라
윗분들 말씀처럼 툴을 이용하시는 방법이 가장 쉽고..
직접 구현하시려면...
몇 가지 방식이 존재하겠지만...
원초적인 방법은 서버소켓 이용하셔서 포트 바인딩 기법을 이용하는 방법입니다.
최초에는 정상이나 그 이후부터 바인딩 오류가 떨어지면 이미 한번 실행된 경우겠지요.
다만, 이 경우 해당 프로그램이 아닌 다른 프로그램에서
지정된 포트를 사용하고 있을 경우를 대비한 예외 정책도 필요합니다.
그외에는 이클립스처럼 특정 파일을 생성해서 처리 -
벛꽃
종스 // java가 서로 다른 프로세스에서 뜨기 때문에 static으로 검사하는건 무의미해 보입니다.
jsmooth 같은프로그램을 이용하는게 제일 편해 보이네요. -
정훈
먼저 실행하는 클래스에 static 으로 int 선언해 주시고, 생성하면 카운트, finalize 에서 다시 플러스 카운트 해주시면 될것 같네요. boolean 해주셔도 되고.. 근데 해보질 않아서 모르겠네요..^^;;안된다면 시스템 classloader 까지 읽고 들어가야 되는데...
-
해비치
jsmooth란 프로그램(jar파일에서 exe파일 만드는 프로그램)에서 그 옵션이 있던데요.
vm옵션에서는 어떻게 줘야 될런지는 모르겠네요.