2016-03-09 149 views
0

例如,假設我使用命令「java foo」從命令行運行程序foo.java。Java程序運行時可以再次使用命令行嗎?

foo.java恰好是一款遊戲,它不斷運行。直到foo.java完成運行,我不知道如何再次使用命令行,除非我鍵入ctrl + c。但是這終止了當前正在運行的foo.java程序。我可以再次使用命令行而不必先終止foo.java?如果是這樣,怎麼樣?

+0

這取決於你的shell。例如,在bash中,您可以運行'java foo&'並將其作爲後臺任務執行。 – azurefrog

+1

這實際上是一個用戶問題,而不是編程問題。看看[如何在後臺執行Windows命令?](http://superuser.com/questions/198525/how-can-i-execute-a-windows-command-line-in-background)超級用戶。 – azurefrog

回答

2

根據你的shell,你可以做java foo&在後臺運行這個進程(這不是特定於Java),或者你可以使用CTRL+Z(暫停,暫停,暫停該過程),然後bg,它在後臺恢復暫停的過程。

您也可以使用fg來做相反的事情:一旦您背上一個過程,您可以通過fg將它重新帶回前面。

您可以一次執行任意多個過程來完成所有這些工作。閱讀更多關於job control

+0

This Works!謝謝。 – Solomon

+0

@Solomon不客氣。有關更多詳細信息,請參閱我的編輯:您可以通過作業控制來做一些相當時髦的事情。 –

0

在Unix或Linux下,您可以運行java foo &來告訴shell立即給出提示(「在後臺運行它」)。但是,如果程序正在向控制檯生成輸出,則會干擾會話,因爲它會直接噴射到屏幕上;在bash中,你可能更喜歡java foo >/dev/null 2>&1 & - 這意味着「將stdout重定向到/ dev/null(丟棄它),將stderr重定向到相同的地方,在背景中」。

或者,如果程序已經啓動,您可以執行ctrl-Z來停止程序(暫停它),然後運行shell的bg命令以在後臺繼續它。

如果您在Windows下運行,您可以使用start java foo啓動程序 - 這會爲您的程序啓動一個新的專用命令窗口,以便您可以繼續使用舊窗口。或者,您可以使用start/x java foo來做同樣的事情,但沒有新的命令窗口。使用help start可查看更多選項。

0

假設你使用的是Windows,你不需要你的Java應用程序的控制檯輸出,你可以使用javaw Foo代替java Foo並同時具有運行以及在Java應用程序讓你的終端回來的時候了。