2011-06-24 3 views
6

Opracowałem aplikację konsoli Java, która po uruchomieniu otworzy okno konsoli i pozostanie na pierwszym planie, chcę uruchomić tę aplikację w tle.Uruchom konsolę Java jako demon (tło)

Teraz mogę uruchomić aplikację za pomocą tej linii poleceń:

java -jar myapp.jar 

Czy istnieje sposób, aby osiągnąć to zachowanie? Wystarczy zmienić parametr wiersza poleceń, czy muszę zmienić kod?

+0

Twoje pytanie nie jest jasne. Czy chcesz uruchomić jako usługę Windows? A może chcesz mieć okna konsoli? lub oba? –

+1

W jakim systemie operacyjnym chcesz to osiągnąć? – Marcelo

+0

Jestem w systemie Windows i jako usługa systemu Windows może być doskonałym rozwiązaniem. Czy istnieje sposób uruchomienia aplikacji konsoli Java jako usługi Windows ServicE? – aleroot

Odpowiedz

12

Odpowiedź jest zależna od systemu operacyjnego.

*nix: <your command> & 
Windows: (opens a new console): start <your command> 
Windows: (doesn't open a new console): start /b <your command> 
6

Jeśli robisz to w czymś opartym na systemie unix, możesz dodać na końcu &, który odrodzi nowy wątek i sprawi, że będzie działał w tle.

java -jar myapp.jar & 
4

Jeśli naprawdę chcesz, aby działał w tle, wykona zadanie java -jar myapp.jar &. W ten sposób nadal umrze, gdy powłoka się zamknie, ale możesz nadal używać swojej powłoki.

Jeśli naprawdę chcesz, aby był uruchamiany jako demon, wykona to zadanie: nohup java -jar myapp.jar &. W ten sposób będzie żyć po zamknięciu muszli.

Jeśli chcesz, aby było to wiarygodne, możesz przygotować skrypt inicjujący lub upstart job definition lub uruchomić go za pomocą specyfikatora Vixie cron(8)@reboot, aby uruchomić go przy starcie systemu.

+0

Chcę tylko wskazać, że byłby to system Unix lub Linux, a nie Windows. – Kalyan

3

Biorąc pod uwagę, że korzystasz z systemu Windows, możesz wziąć pod uwagę Java Service Wrapper. Używałem go w przeszłości w projekcie.

+3

Dodatkowo można zrobić "javaw" zamiast "java", które uruchomi twój program bez okna konsoli. Zwykle należy uruchomić program java oparty na GUI. http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html – Jim