Java Archive

A Look at GCJ 4.1

One of the components of the GNU Compiler Collection (GCC) is GCJ, the GNU Compiler for the Java programming language. GCJ is a compiler that can generate both native code and bytecode from Java source files. GCJ includes a runtime library (libgcj) that provides all runtime support, the core class libraries, a garbage collector, and a bytecode interpreter. Programs created by gcj can dynamically load and interpret class files or native shared libraries resulting in pure, or mixed native/interpreted apps.

Kaffe 1.1.7 released

A new version of Kaffe has been released. Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. The Kaffe virtual machine is free software, licensed under the terms of the GNU General Public License. Some benchmarks are available too.

Java Theory and Practice: Good Housekeeping Practices

"Putting your toys away when you are done is always a drag, but if you dont take the time to do it, you would have a huge mess over time. Garbage collection does an awful lot of the cleanup for us, and it simplifies development and eliminates entire categories of potential code errors, but some java resources still require explicit action on our part. This article discusses the limitations of garbage collection and identifies situations when you have to do your own housecleaning."

Building a JNI Universal Application with Xcode

"The Java Native Interface lets developers mix Java code with C or C++ source code. It provides access to platform-specific features that Java does not provide, so that Java applications on Mac OS X can take advantage of the wide range of powerful Apple-only technologies to provide the best possible user experience. Using the JNI, your Java application can access a user's Address Book, make Spotlight queries, take advantage of Core Image and Core Video, and leverage many other rich features unique to Mac OS X. This step-by-step tutorial explains how to use the JNI to integrate Java and C code using a single Xcode project with multiple targets."

Build Your Own Profiling Tool

"Profiling is a technique for measuring where software programs consume resources, including CPU time and memory. In this article, software architect Andrew Wilcox explains the benefits of profiling and introduces some current profiling options and their shortcomings. He then shows you how to use the new Java 5 agent interface and simple aspect-oriented programming techniques to build your own profiler."

What Is Java?

"We recently received an email asking for a 'What Is Java' entry on the O'Reilly Network What Is site. Who could possibly not know what Java is in 2006? After ten years of books, websites, and conferences, doesn't everyone know what Java is? Apparently not. After all, things have changed. For every dusty definition that speaks of applets and Just-In-Time compilers, there are new directions and new realities that have settled in, understood by many, yet not always completely documented."

Crossing borders: Exploring Active Record

"The Java programming language has had an unprecedented run of success for vendors, customers, and the industry at large. But no programming language is a perfect fit for every job. This article launches a new series by Bruce Tate that looks at ways other languages solve major problems and what those solutions mean to Java developers. He first explores Active Record, the persistence engine behind Ruby on Rails. Active Record bucks many Java conventions, from the typical configuration mechanisms to fundamental architectural choices. The result is a framework that embraces radical compromises and fosters radical productivity."

GNU Classpath 0.90 “A La Mort Subite” Released

GNU Classpath 0.90 "A La Mort Subite" has been released. Some highlights of this release: JTables can be rearranged and resized. Free Swing text components support highlighting and clipboard. Much improved styled text. Fast event dispatching and lower memory consumption. Better support for mixing lightweight and heavyweight components in AWT containers. GNU Crypto and Jessie cryptographic algorithms have been added providing ssl3/tls1 and https support. Unicode 4.0.0 support. GIOP and RMI stub and tie source code tools. XML validaton support for RELAX NG and W3C XML schemas. New file backend for util.prefs. Updated gnu.regexp from POSIX to util.regex syntax.

SWT, Swing, AWT: Which Is Right for You?

"Why is there more than one Java GUI tool kit? The best answer is that one size does not fit all, nor is there a one-size-fits-all GUI tool kit to be invented soon. Each tool kit offers advantages and disadvantages that make selecting one more appropriate, given your needs and intended audience. Read descriptions of each tool kit's basic features, and the pros and cons of using each."