From owner-freebsd-java@FreeBSD.ORG Fri May 5 13:36:28 2006 Return-Path: X-Original-To: freebsd-java@freebsd.org Delivered-To: freebsd-java@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2D4FA16A400 for ; Fri, 5 May 2006 13:36:28 +0000 (UTC) (envelope-from fernan@iib.unsam.edu.ar) Received: from smtp.unsam.edu.ar (smtp.unsam.edu.ar [170.210.48.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id DD16543D58 for ; Fri, 5 May 2006 13:36:20 +0000 (GMT) (envelope-from fernan@iib.unsam.edu.ar) Received: from omega.iib.unsam.edu.ar (omega.iib.unsam.edu.ar [192.168.10.14]) by smtp.unsam.edu.ar (8.12.6/8.12.6) with ESMTP id k45DbPKq049581; Fri, 5 May 2006 10:37:25 -0300 (ART) (envelope-from fernan@iib.unsam.edu.ar) Received: from omega.iib.unsam.edu.ar (localhost [127.0.0.1]) by omega.iib.unsam.edu.ar (8.13.4/8.13.4) with ESMTP id k45DZaJK037041; Fri, 5 May 2006 10:35:41 -0300 (ART) (envelope-from fernan@iib.unsam.edu.ar) Received: (from fernan@localhost) by omega.iib.unsam.edu.ar (8.13.4/8.13.3/Submit) id k45DZZOt037036; Fri, 5 May 2006 10:35:35 -0300 (ART) (envelope-from fernan@iib.unsam.edu.ar) X-Authentication-Warning: omega.iib.unsam.edu.ar: fernan set sender to fernan@iib.unsam.edu.ar using -f Date: Fri, 5 May 2006 10:35:35 -0300 From: Fernan Aguero To: Scott Mitchell Message-ID: <20060505133535.GB12509@iib.unsam.edu.ar> Mail-Followup-To: Fernan Aguero , Scott Mitchell , freebsd-java@freebsd.org References: <20060504121812.GA94022@iib.unsam.edu.ar> <20060504123935.GB94022@iib.unsam.edu.ar> <20060504214118.GA1072@tuatara.fishballoon.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20060504214118.GA1072@tuatara.fishballoon.org> User-Agent: Mutt/1.5.11 Cc: freebsd-java@freebsd.org Subject: Re: java without X11? X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 May 2006 13:36:28 -0000 +----[ Scott Mitchell (04.May.2006 18:45): | | On Thu, May 04, 2006 at 09:39:35AM -0300, Fernan Aguero wrote: | > +----[ To freebsd-java@freebsd.org (04.May.2006 09:18): | > | | > | Hi! | > | | > | I was setting up a headless (no X11, no GUI) box and had to | > | install java (required by apache-ant and by a java code that | > | interacts with an underlying postgresql database). | > | | > | I want this box to run only the base system (cut down to | > | only essential daemons/processes) and one application | > | (postgresql + associated perl/java layers). | > | > [ snipped ] | > | > | I know that a lot of java apps depend on GUI functionality | > | provided by the language, but is this java+X11 a thing that | > | cannot be separated? (i.e. X11 is rooted too deep into | > | java) or maybe it could be separated and we could have an | > | optional WITHOUT_X11 in the various jdk ports? | | The java binary in diablo-1.5.0_06 doesn't have a load-time dependency on | libX11.so or any other X11 libraries, nor libawt.so - I guess the JVM will | dlopen() libawt.so if it needs to do any graphical stuff. As proof of | concept a simple "Hello, World" Java program compiles and runs just fine on | a machine with no X11 libraries installed. I expect any program that | didn't use AWT/Swing would work just as well. Great, that was what I was about to do once I could get hands on this box. So, this means that I could safely ignore the warnings about missing dependencies (upon package installation)? | Interestingly libawt.so doesn't have any direct X11 dependencies either, | rather it depends on libmawt.so, of which several different versions exist, | in the jre/lib/i386/{xawt,motif21,headless} directories. The xawt and | motif21 versions depend on various X11 libraries, but the headless version | does not. It looks like setting the java.awt.headless property to true or | just having no $DISPLAY will cause the headless libraries to be used. You | should be able to use AWT/Swing classes in any way that doesn't require | access to a real display - so loading any manipulating images should work, | but trying to say open a window will throw a HeadlessException. | | Cheers, | | Scott | +----] OK, good to know. thanks for your reply, Fernan