Community

I am working with a colleague who is generating graphical output from an Anylogic simulation running from within the Anylogic IDE. I want to be able to run the simulation from the command line using the generated jar. However, when I try to do this, I get an error 'can't connect to X11 window server'. I tried invoking the simulation using the java option 'java.awt.headless', but I am getting the same error. I also tried to setup the Xvfb server, but the simulation seems to hang at the point where eh X11 error occurred before. Is there Anyway to configure Anylogic/X11 so I can run the simulation from the command line ? The simulation outputs data to a database, so I do not care about the graphical output. Thanks.
The Sun AWT classes on Unix and Linux have a dependence on the X Window System: when you use the classes, they expect to load X client libraries and be able to talk to an X display server. This makes sense if your client has a GUI... unfortunately, it's required even if your client uses AWT but does not have a GUI. For example, you need access to an X server to use the java.awt.BufferedImage class. Access to an X display server means a few things: * An X display server is running somewhere. * The environment in which you run Java includes an environment variable DISPLAY identifying how to reach the server. * There are no security settings in the server to prevent your client from opening a connection. In general, if you're running your program from a terminal within the X Window System, all these things are true and the program just works. If you can run other X applications, like xterm or xclock, you should be able to run your Java AWT application. In non-graphical environments, such as a servlet engine, your program may not know how to find or connect to an X display server. A common solution here is to run a special non-display version of the X display server, Xvfb, and set DISPLAY to point to it. JDK1.4 used in AnyLogic 5 evidently includes a new property that will allow the AWT to run in a headless (without a display) environment. This setting is supposed to solve the problem: java.awt.headless=true BTW, what OS are you using AnyLogic with? --VP