在Java程序运行时,我可以再次使用命令行吗?

时间:2016-03-09 23:08:59

标签: shell command-line command

例如,假设我使用命令“java foo”从名为foo.java的命令行运行程序。

foo.java恰好是一款游戏,它不断运行。直到foo.java完成运行,我不知道如何再次使用命令行,除非我输入ctrl + c。但这会终止当前正在运行的foo.java程序。我可以再次使用命令行而不先终止foo.java吗?如果是这样,怎么样?

3 个答案:

答案 0 :(得分:2)

根据您的shell,您可以java foo&在后​​台运行该进程(这不是特定于Java),或者您可以使用{{1来设置已经处于前台的进程(暂停,暂停进程),然后CTRL+Z,它将在后台恢复暂停的进程。

您也可以使用bg执行相反的操作:一旦您对流程进行了后台处理,您可以使用fg将其重新置于前面。

您可以使用任意多个流程同时执行所有这些操作。详细了解job control

答案 1 :(得分: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查看更多选项。

答案 2 :(得分:0)

假设您使用的是Windows并且不需要Java应用程序的控制台输出,则可以使用javaw Foo而不是java Foo并在使用java时立即恢复控制台应用程序运行。