Min. ports needed for headless AWT/Swing

Aryeh Friedman aryeh.friedman at gmail.com
Wed Jul 1 11:33:24 UTC 2020


On Wed, Jul 1, 2020 at 5:52 AM Ronald Klop <ronald-lists at klop.ws> wrote:

> *Van:* Aryeh Friedman <aryeh.friedman at gmail.com>
> *Datum:* maandag, 29 juni 2020 20:59
> *Aan:* Michael Osipov <1983-01-06 at gmx.net>
> *CC:* freebsd-java at freebsd.org
> *Onderwerp:* Re: Min. ports needed for headless AWT/Swing
>
> On Mon, Jun 29, 2020 at 2:28 PM Michael Osipov <1983-01-06 at gmx.net> wrote:
>
> > Am 2020-06-29 um 17:43 schrieb Aryeh Friedman:
> > > I have a java application that works fine with setenv DISPLAY :0.0 on
> my
> > > desktop FreeBSD 12.1 (amd64) [with Xfce4] but when I attempt to run the
> > > same app on a VM that has the minimum ports needed to install OpenJDK 8
> > and
> > > Tomcat I get an exception saying that it can't connect to the X server
> > even
> > > though I did setenv DISPLAY desktop:0.0 (and xhost + on the desktop).
> > > Note it is the same user on both machines (NIS/NFS password DB/home
> dirs)
> > > doing the running on both machines but is a different user then the one
> > > logged in at the console (I do all my development in a separate
> account)
> >
> > Are you look for "-Djava.awt.headless=true"?
> >
>
> Since this is a screen capture/recording program (which I am the developer)
> I need to be able to capture the console (running X) that I am currently
> on.   So the question is what is the minimum set of ports/packages I need
> to install on the VM to make it see and X server?   It should be noted the
> program has no GUI but does use java.awt.Robot#createScreenCapture (using
> the full screen resolution as it's bounds) individual frames of the longer
> video.
>
> Here is the specific exception I am attempting to fix:
> On desktop (192.168.11.20)
> % xhost +
>
> On VM (192.168.11.4):
> % setenv DISPLAY 192.168.11.20:0.0
> % java
>
> -javaagent:/usr/local/share/java/classes/jacocoagent.jar=destfile=/usr/home/aryeh/fnwe-scap-1a1.C036/jacoco.exec,jmx=true,excludes=thistest/*:test/*
> -cp
>
> /usr/home/aryeh/fnwe-scap-1a1.C036/scrap/www/WEB-INF/lib/fnwe-scap-1a1.jar:/usr/local/share/java/classes/thisTest.jar:/usr/local/share/java/classes/pcCommon.jar:/usr/local/share/java/classes/pcUtil.jar
> test.TestMain
>
> Result of the jvm invocation on the VM (not it works no problem su(do)'ing
> to another account on the desktop if I do setenv DISPLAY :0.0):
>
> Caused by: java.awt.AWTError: Can't connect to X11 window server using
> '192.168.11.20:0.0' as the value of the DISPLAY variable.
> at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
> at
> sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
> at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
> at java.security.AccessController.doPrivileged(Native Method)
> at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:264)
> at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103)
> at
>
> java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
> at test.scap.TestVideoFrame.testCaptureFrame(TestVideoFrame.java:76)
>
> _______________________________________________
> > freebsd-java at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-java
> > To unsubscribe, send any mail to "freebsd-java-unsubscribe at freebsd.org"
> >
>
>
> --
> Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org
> _______________________________________________
> freebsd-java at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-java
> To unsubscribe, send any mail to "freebsd-java-unsubscribe at freebsd.org"
> ------------------------------
>
>
> Hi,
>
> Can you start any other X application on the VM using the DISPLAY setting?
> Like /usr/ports/x11/xeyes. Than you know if it is something with X instead
> of something with Java. I guess it is something with X.
> I guess your desktop is not listening for external connections to the X
> server or your routing between the VM and the desktop does not work.
> Or start a X server in the VM and use DISPLAY=:0.0 again.
>

Don't have any X components installed except for the ones required by
"make/make install" on openjdk8.   The reason for this post in the first
place was to figure out the minimum set of ports needed to get a working
DISPLAY variable in the first place.


-- 
Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org


More information about the freebsd-java mailing list