2013-05-09 16 views
5

Ho esaminato tonnellate di diverse domande StackOverflow e articoli su altri siti Web, ma nessuno di loro ha esattamente quello che sto cercando.Come far funzionare un programma Java in background?

Quello che sto cercando di fare:

Ho un programma che ha bisogno di dormire per un po ', e poi controllare per assicurarsi che un programma è ancora in esecuzione, poi dormire di nuovo. Ho fatto questa parte benissimo e dandy, ma sto incontrando un problema che lo rende in esecuzione in background. Sto cercando di farlo funzionare senza vassoio di sistema, nessuna finestra del prompt dei comandi, solo un processo. C'è un modo per farlo? Mi dà davvero fastidio avere una finestra del prompt dei comandi aperta 24 ore su 24 per un programma semplice come questo, e se qualcuno potesse aiutarlo sarebbe fantastico!

(Inoltre, si noti che non sto parlando di compilazione da riga di comando, sto dicendo che dopo aver aperto la versione .exe del programma java, come si potrebbe fare aprire l'exe senza una finestra del prompt dei comandi o GUI)

Grazie!

MODIFICA: Sì, eseguo Windows e questo programma verrà eseguito esclusivamente su sistema operativo Windows '.

+0

1st hit: http://www.coderanch.com/t/370721/java/java/run-Java-program-background –

+0

Quale sistema operativo stai utilizzando? Finestre? – Joel

+0

Penso che si possa eseguire il programma come servizio di Windows. – shuaqiu

risposta

0

Guardare in javaw, che viene fornita di serie con il JRE

+0

Hai qualche link su javaw? L'ho letto in uno dei miei risultati Google, ma ogni ricerca contiene solo crap come "Cos'è javaw.exe" "javaw.exe è dannoso?" "come terminare javaw.exe" ecc. ecc. – N01zii

+1

Perché non leggi la documentazione Java sul sito Oracle? http://docs.oracle.com/javase/7/docs/ –

0

eseguire questo script VBS dalla Task Scheduler:

Set Shell = CreateObject("WScript.Shell") 
Shell.CurrentDirectory = "C:\Users\myuser\mylib" 
Shell.Run "java.exe MyClass", 0, False 
+0

Sono un po 'curioso del motivo per cui questo è stato down-votato, in quanto funziona abbastanza bene. –

+0

Anch'io. La soluzione sopra sembra ottusa. –

4

Quello che vogliamo è un programma daemon. L'equivalente di Windows di un daemon è un servizio di Windows.

Quindi una soluzione è eseguire il programma come servizio di Windows. È molto semplice convertire un programma java da riga di comando in un servizio con ProcRun. L'ho fatto solo la settimana scorsa con un programma particolare che ho fatto - ho impiegato circa mezza giornata, principalmente perché era la prima volta che lo facevo.

Rendendolo un servizio di Windows ha il vantaggio che è possibile impostarlo per l'avvio automatico all'avvio della macchina.

+0

e se volessi farlo con linux base os? come posso farlo? –

Problemi correlati