Why not j2se1.4 java2d Fullscreen? Because I wanted to do non-X console guis in java without any real/fake X server running.
Can it work for embedded java GUI, games and media players? Maybe, depends what you call embedded and what your constraints are.
Why not Java ported to Microwin? Because its DOG SLOW, has a poor widget set and locks the framebuffer for you. What if I wanted to run mplayer in Microwin?
Why not SDL for Perl or Python? Just Because.
Why not a new GraphicsDevice for J2se1.4 instead of a custom gui engine? Good idea. We couldn't do it with 1.2, because even if you successfully registered a new GraphicsDevice, GraphicsContext, etc, you still could not affect java.awt.Graphics. There would be no way to make a component paint(java.awt.Graphics g) to your device. However, if we can now in 1.4, porting Swing would become a non issue.
Why not java for FBDev? Hmmm... I like it, but what about audio?
To get demo to work at the framebuffer console (without Xwindows), see the HOWTO doc on getting SDL to run from the console. I got this console stuff working ONLY with Redhat, not my favorite Linux "Mandrake".
here's an old copy of my doc
RUNNING JSDL FROM THE CONSOLE --------------------------- SDL offers a single API that can render graphics in both a Windowing environment and directly to a graphics device. While SDL seems to work fine in X-Windows, I had to do extra configuration to make it work at the console. WHY WOULD YOU CARE? If you want to have java graphics programs come up at the console without having a real or psudo x server running. This is pretty interesting for set top boxes, embedded applications, gui installers, etc. INITIALIZING FRAMEBUFFER The first step to getting JSDL to run without a windowing system is setting the video mode in the kernel. I have been able to run JSDL applications at the console *only* after configuring the kernel to boot with a specific framebuffer VESA video mode. For the sake of this explanation, I will use Redhat 7.2 and the Grub boot loader (Since they're the only one's I've tried :) ). WHAT DOES THIS MEAN? When you boot Redhat, you'll notice the console has a picture at the top and text in small letters scrolling by. This is because this part of the boot sequence is set to run in a specific VESA mode. However at some point during the system boot, the picture disappears and the font size goes back that of a normal VGA console. What I've had to do is set Redhat to always finish booting in some arbitrary VESA framebuffer mode. COMMON VESA MODES Below is a list of some of the VESA modes available with most video card framebuffers. You're available modes may differ depending on your video adapter card / driver's capabilities. In this example lets stick to 1024x768 with 64k colors. # VESA framebuffer console @ 1024x768x64k vga = 791 # Normal VGA console # vga = normal # VESA framebuffer console @ 1024x768x64k # vga=791 # VESA framebuffer console @ 1024x768x32k # vga=790 # VESA framebuffer console @ 1024x768x256 # vga=773 # VESA framebuffer console @ 800x600x64k # vga=788 # VESA framebuffer console @ 800x600x32k # vga=787 # VESA framebuffer console @ 800x600x256 # vga=771 # VESA framebuffer console @ 640x480x64k # vga=785 # VESA framebuffer console @ 640x480x32k # vga=784 # VESA framebuffer console @ 640x480x256 # vga=769 CONFIGURING THE KERNEL AT BOOT - GRUB Boot loaders are able to set many of bootup options for your kernel. I will use GRUB for the sake of my examples. Remember this value --- "vga=791" * CONFIGURING GRUB Grub's primary configuration file "/boot/grub/grub.conf" will look very similar to the following after install. default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Linux (2.4.18-3) root (hd0,0) kernel /vmlinuz-2.4.18-3 ro root=/dev/hda2 initrd /initrd-2.4.18-3.img Notice the line specifying which kernel file to load. Your root device (/dev/hda2) will likely be different than mine. * SETTING THE VESA MODE IN GRUB As mentioned earlier, I chose to use 1024x768x64k mode. (vga=791) Your video card may not like this mode and will not be able to set this on boot. If that is the case, you should try another of the many VESA modes available (and not limit your testing to small set of choices above.) Simply change the kernel line from: kernel /vmlinuz-2.4.18-3 ro root=/dev/hda2 to: kernel /vmlinuz-2.4.18-3 ro root=/dev/hda2 vga=791 and save the file. * TESTING THE CHANGES TO GRUB At this point, you simply reboot linux and get out your reading glasses to read the small fonts. * TESTING JSDL Now that the Framebuffer has been initialized, you should be able to try some cool stuff. Find a JSDL example that you got working last time you were Xwindows. Execute that from the command line without bringing up X windows.