2013-05-09 108 views
5

我已經看過大量不同的StackOverflow問題和其他網站上的文章,但沒有一篇具有我正在尋找的內容。如何讓Java程序在後臺運行?

什麼我試圖做的事:

我有一個需要睡一會兒,然後檢查,以確保程序仍在運行一個程序,然後再睡覺。我已經把那部分做得很好,但是我遇到了一個讓它在後臺運行的問題。我試圖讓它在沒有系統托盤的情況下運行,沒有命令提示符窗口,只是一個進程。有什麼辦法可以做到這一點?這真的讓我很煩惱,我必須爲這個程序提供一個24/7全天候開放的命令提示符窗口,如果有人能夠幫助它,那將非常棒! (另外,請注意,我並不是在談論從命令行編譯,我打算在打開.exe程序的Java程序後,如何在沒有命令提示符窗口的情況下打開exe文件或GUI)

謝謝!

編輯:是的,我運行的是Windows,而且這個程序將在Windows操作系統上運行。

+0

1st hit:http://www.coderanch.com/t/370721/java/java/run-Java-program-background – 2013-05-09 01:50:40

+0

您使用的是什麼操作系統?視窗? – Joel 2013-05-09 01:51:21

+0

我認爲你可以運行程序作爲Windows服務。 – shuaqiu 2013-05-09 01:52:16

回答

0

查找到javaw進程,它標配了JRE

+0

你有沒有關於javaw的任何鏈接?我在Google的其中一個搜索結果中看到了這個消息,但是對它的每一次搜索都只是包含諸如「什麼是javaw.exe」「javaw.exe有害? 「如何結束javaw.exe」等等。 – N01zii 2013-05-09 01:54:49

+1

爲什麼不閱讀Oracle網站上的Java文檔? http://docs.oracle.com/javase/7/docs/ – 2013-05-09 01:59:13

0

運行從任務計劃程序此VBS腳本:

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

我有點好奇,爲什麼這是倒票,因爲它工作得很好。 – 2013-05-09 11:09:05

+0

我也是。上面的解決方案似乎很鈍。 – 2013-12-12 04:26:02

4

你想要的是一個服務程序。 Windows守護進程等效於Windows服務。

因此,一種解決方案是將您的程序作爲Windows服務運行。將命令行java程序轉換爲ProcRun的服務非常簡單。上週我剛剛做了一個特定的程序 - 大約花了半天時間,主要是因爲這是我第一次這樣做。

使其成爲Windows服務具有的優點是,您可以將其設置爲在機器啓動時自動啓動。

+0

如果我想使它與Linux的基礎操​​作系統呢?我怎麼能這樣做? – 2013-12-11 04:50:56