开发者

How to run a java program without a console [closed]

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. Closed 12 years ago. 开发者_Python百科

I need to run an java program even the terminal is closed.... in server....


On Unix and GNU/Linux systems you can run the program using nohup like this, assuming it is a jar:

nohup java -jar program.jar &

To get the output of the program run into a text file so later on you can view it, you can do:

nohup java -jar program.jar > program.log &

There are packages that will wrap your Java programs into services too, which is more manageable than bare java processes.

You probably also want to use a "process wrapper" (Launch4J maybe?) to give your process a meaningful name, otherwise all your Java programs will appear as java in the process list, which isn't very indicative.


An "alternative" to nohup would be screen. screen is very useful and allows you to run any task, detach the screen, and let it run in the background. You can resume it later.

To run a task:

screen <command_you_want_to_run>

Then <ctrl> <a> <d> to detach from the screen session.

The next time you log in you can reattach to the screen session with:

screen -r

If you have multiple screen sessions running you will be presented with their details and can connect to them like this:

screen -r 1234.pts-1.hostname

... where 1234.pts-1.hostname is one of the returned values from the output from screen -r.


Use the javaw command instead of java.


You want to use headless mode. This will cause any calls that attempt to communicate with a screen, keyboard, mouse, etc to fail, but also means that you won't need an X server (on Unix) or access to the console (on Windows).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜