Java Archive

What’s Using All My Linux Native Memory?

An understanding of native memory is essential when you design and run large Java applications. The lack of predictable behaviour means there's no one simple way to identify native-memory exhaustion. Instead, you need to use data from the OS and from the Java runtime to confirm the diagnosis. To get the best performance from your Java application, you must understand how the application affects the Java runtime's native-memory use.

Serving Cross-Compiled OpenJDK with IcedTea

Robert Schuster has a very detailed account of the work done to get full Java support on small devices. He managed to cross compile (and package) OpenJDK/IcedTea for OpenEmbedded/ARM through multiple build stages using various free java implementations. This provides full free (GPL) J2SE support for ARM based handlhelds, phones and embedded devices like the BeagleBoard, BUG, OpenMoko, Maemo and the Irex Iliad through Jalimo.

Java 1.5 for the .NET Platform

I read in InfoQ: "Ja.NET is a port of Java 1.5 SE to the .NET platform. The compiler is based on the Eclipse JDT, which has been modified to generate IL as well as Java Byte Code. Java traditionally compiles each class into a separate file, but this creates an unacceptable overhead for .NET. To address this, a tool based on Cecil is used to create larger assemblies much in the same way Jar files are created for Java."

JavaFX 1.0 Released

Sun has released the first version of JavaFX, aptly named JavaFX 1.0. "JavaFX 1.0 returns to the sales pitch that Sun used during Java's launch more than 13 years ago: a foundation for software on a wide variety of computing "clients" such as desktop computers or mobile phones. JavaFX builds on current Java technology but adds two major pieces. First is a new software foundation designed to run so-called rich Internet applications--network-enabled programs with lush user interfaces. Second is a new programming language called JavaFX Script that's intended to be easier to use than traditional Java."

JNode 0.2.7 Released

The JNode team has released the latest version of their operating system written in Java (it does have a small assembler nano kernel). "This release features the integration of the OpenJDK implementation of Swing and AWT, and significant improvements to the overall JNode GUI including improved painting and font rendering, generic VESA support and graphical console. The release also includes a new command argument framework for the shell, reworked shell commands, a configure tool for the JNode build environment, Samba file system with read/write support and many stability and bug fixes across the whole system." They have screenshots, a changelog, and (surprise!) a download page.

Multiple Return Values in Java

Today was one of those days when I wished Java would support multiple return values. I had to develop a rather CPU-intensive algorithm which would compute a solution for a knotty constraint problem. Having a solution alone is sometimes not enough and you also need to add some parameters which measure the quality of the computed outcome. Most of these accompanying parameters can or have to be computed within the algorithm itself, but Java allows you to return only one value either an object or a primitive type. People working with Lisp, MATLAB or Perl, just to mention a few, don't have a problem like this at all. Functions supporting multiple return values is already implemented at the language level and frameworks make heavy use of this. But as a Java programmer you are pretty much stuck here and need to consider some other means to come out of this situation. In the following I would like to give some hints on that topic. Hopefully they are of help for anyone having the same problem every now and then.

JNode 0.2.6 Released

JNode 0.2.6 has been released. "JNode is a free, open source Java technology based OS written fully in Java language (with a very small assembler nano-kernel). This release features over 99 percent java 6 api compatibility, hotswapping, nfs, hfs+, even more openJDK integration, jetty6 and of course bug fixes and improvements."

IcedTea 1.6 Released

The IcedTea project provides a harness to build the source code from OpenJDK using Free Software build tools and provides replacements libraries for the binary plugs with code from the GNU Classpath project. This release adds the "Zero-assembler" port which will allow IcedTea to run with zero (ok, minimal) porting effort on any GNU/Linux architecture that has a gcc and libffi port available. JNLP support has been added through the addition of NetX, which makes a lot of java webstart applications work out of the box. Check out the screenshots. Gary Benson will give a talk about the zero-assembler port at FOSDEM during the free Java developer meeting where GNU Classpath, OpenJDK and many other Free Java projects come together to plan the future of Free Java on GNU/Linux.

IcedTea 1.5 Adds PowerPC Java Port

The IcedTea project added a PowerPC Java port (both 32 and 64 bit) of OpenJDK. IcedTea 1.5 now also tracks the mercurial repo, provides better GNU/Linux integration by using standard system libraries (libpng, libjpeg, zlib, giflib) and can be bootstrapped with the free gcj/ecj/classpath toolchain. OpenJDK just accepted a new porters group and Gary Benson wrote a guide to porting IcedTea that might be the start of a lot of other Java ports.

Java SE 6 Developer Preview 8 for Leopard Released

Straight from the ADC site (a free online account is enough to gain access to the download): "Java SE 6 Developer Preview 8 is an implementation of Sun's Java SE 6 for Mac OS X v10.5.1 and later. This Preview includes Java SE 6 version 1.6.0_01. This Developer Preview does not change the default version of Java. This release is only for Mac OS X v10.5.1 and later, and should not be installed on earlier versions of Mac OS X. This release is for 64-bit Intel-based Macs only and cannot run on PowerPC-based or 32-bit Intel-based Macs."

Sun Scrapping Mobile Java, Moving Devices to Standard Java

Sun's starting to phase out mobile Java that's been the standard on cellphones and other small devices in favor of their standard edition, which are made for PCs everywhere. Sun VP James Gosling's reasoning for shifting everyone over to Java Standard Edition is because 'cellphones and TV set-top boxes are growing up', meaning they're getting enough processing power to handle all the demands of full-featured Java.

GNU Classpath 0.96, IcedTea 1.4 Released

GNU Classpath 0.96 "Staying Alive!" and IcedTea 1.4 just got released. GNU Classpath is slowly turning into a bootstrapping platform for IcedTea/OpenJDK by providing the necessary free software plugs that are missing from Sun's OpenJDK to provide various GNU/Linux distributions with the fully free GPLed IcedTea Java platform implementation that will be in the Fedora (Werewolf), Debian, and Ubuntu (Gutsy) releases.