캠핑과 개발

보통 java application을 실행할 때 java.exe를 이용해서 실행한다.


하지만, java.exe 는 console window command 이므로 java.exe 를 이용해서 application을 실행한 후 cmd 창을 닫게되면 해당 application이 같이 종료되게 된다.


Background로 실행하기 위해서 Unix에서는 & 명령어를 이용해서 쉽게 실행가능 하지만, Window에서는 어떻게 해야 할지에 대해서 한참을 구글링해야만 했다. 


알고나면 쉬운 것을 알기 전까지는 왜 이렇게 어려운 것일까?...ㅠㅠ


console window를 종료하더라도 실행한 application이 종료되지 않게 background 로 실행시키려면 javaw.exe를 이용하면 된다.

e.g: javaw.exe MyJavaApp


하지만, background로 실행된다고 하더라도 windows 의 경우 보통 .bat 파일을 이용해서 java application을 실행하게 되므로 위와 같은 명령어로 작성된 bat 파일은 open된 console window가 닫히지 않고 열린채 그대로 있게 된다.


그럴때에는 javaw.exe 명령어 앞에, start /B 를 추가해서 실행해 주면 java application 실행 후 자동으로 cmd 창이 닫혀지게 된다.

e.g: start /B javaw.exe MyJavaApp


e.g: RunJavaAppOnCMD.bat - console window mode java application execution.

java MyJavaApp


e.g: RunJavaAppInBackgroundAndNotCloseCMD.bat - background mode java application execution.

javaw MyJavaApp

 


 

e.g: RunJavaAppInBackgroundAndCloseCMD.bat - background mode java application execution and close console automatically.

start /B javaw MyJavaApp

 

 



참조: 

"javaw.exe" belongs to Java from Sun Microsystems, Inc..http://www.neuber.com/taskmanager/process/javaw.exe.html 

The javaw.exe command is identical to java.exe, except that with javaw.exe there is no associated console window. This implies you can't get it to display the version with -version, since there is no console to display it on. Use javaw.exe when you don't want a command prompt window to appear. The javaw.exe launcher will, however, display a dialog box with error information if a launch fails for some reason.

 

[출처]http://blog.daum.net/oiztlomo/4609505

'개발 > Java' 카테고리의 다른 글

클래스 동적 로딩하기  (0) 2015.06.01
JSTL 요약  (0) 2014.08.05
java 화면캡쳐 샘플  (0) 2013.12.04
Java Process Kill Script  (0) 2013.09.04
jdom을 이요한 XML 쓰기와 읽기  (0) 2013.08.23