Skip to main content

The Longest Time

Posted by editor on June 15, 2006 at 10:38 AM PDT

Was the JAR format meant to last this long?

I remember in a JavaOne 2005 keynote, one of the Sun speakers wondered aloud about how far they could take the JAR format, and if was time to move on to something new. A lot of developers have complained about versioning problems, particularly with inter-library dependencies. A JAR can provide some version information, but what can it do for you in terms of figuring out which version of other JARs it requires?

Still, the basic idea of the JAR -- just a ZIP file, and thus, a heirarchy of files contained inside a single file -- probably still has some legs left to it. After all, it's more or less the same trick that Mac OS X pulls with .app folders: rename a folder to have the ".app" extension and the system treats it as an application, though it's still really a folder, allowing you to easily place your artwork, sounds, localizations, and other resources inside what the user sees as a single file, easily dragged from place to place without breakage.

Surely the JAR, built on effectively the same premise, can provide similar benefits. The only trick is understanding how to get at the contents of the JAR. This is the topic of the latest "(Not So) Stupid Question", which is today's Feature Article. In (Not So) Stupid Questions 10: JAR Files, we consider the question "other than bundling my classes, what good does a JAR do me?" Working through the questions of how to get images into a JAR at build-time and how an application can access them, we'd like you to help show us what else JARs are good for. If you've gone down this particular programming path, please join in the discussion in the comments section.

rundeks has an interesting JDIC feature request in
today's Forums. He clarifies his request in Re: Can you get the DOM from the Browser:
"I want access to the DOM as the browser parses it. The problem with all the open source parsers out there is that they don't handle bad HTML well, but the browsers do. Thus there is a lot of bad HTML out there. Thus there is a need to access the DOM from a real browser."

Re: Reusing URLConnection, alanb writes:
"The HTTP protocol handler has supported persistent connections for many years (JDK 1.2 or maybe 1.3). At the API level the application opens a new URLConnection for each request but under the covers the protocol handler will re-use the socket connection if there is a connection open. The long standing issue, as you rightly identify, is the case where the application doesn't read the entire response. In that case the connection might not be put into the "keep alive cache" - it all depends on if the protocol handler has read to the end of the response. This loose end has been addressed in mustang and Chris has a blog about it here."

David Herron comes clean with some lessons learned in today's Weblogs. In

Open source project maintanence, he writes:
"What just came to mind is an open source project I once led .. long before the phrase 'open source' had been invented. And, how I contributed to the death of that project due to mishandling its governance."

Changshin Lee has some news for
Serializing XML, not printing XML:
"Suppose you have an org.w3c.dom.Document instance to output, for example, to a web browser screen or just simply on a Console, then hmm... unfortunately, we used to have no standard way within DOM API (used to... not now)."

What I would like to see in a next version of NetBeans, Vincent Brabant writes:
"A long time ago, I wrote an article asking to have an EDI based upon Ant. NetBeans Team realized it. Today, I decided to write what I would like to see in the future release of NetBeans. "

In Projects and
the Java Internet Indirection Infrastructure (ji3) project is intended to be a Java port of Internet Indirection Infrastructure using Java EE technologies, including JMS, web services, and Spring. i3 eases the deployment of services like multicast, anycast, and mobility, by decoupling the act of sending from the act of receiving.

The JavaDesktop Community is linking to the article First Release of FMJ - Open-Source JMF, in which Ken Larson announces the first release of FMJ, an open-source implementation of the Java Media Framework (JMF). It supports video capture on Linux, Windows, and Mac, and playback of a variety of popular formats.

In Also in
Java Today

Linda DeMichiel is Sun Microsystems' specification lead and chief architect for Enterprise JavaBeans 3.0 and the Java Persistence API (JSR 220). In Refactoring the EJB APIs, the first segment of a two-part interview, she discusses how the EJB 3 APIs simplify development, how to choose between annotations and XML in configuring an EJB environment, and suggests a practical way to learn about EJB 3.

Using a rules engine can lower an application's maintenance and extensibility costs by reducing the complexity of components that implement complex business logic. Ricardo Olivieri's article Implement business logic with the Drools rules engine shows you how to use the Drools rules engine to make a Java application more adaptive to changes. Drools has the added benefit of a syntax that lets you embed Java code directly in a rules file.

In today's
News Headlines

Registered users can submit news items for the href=""> News Page using our
news submission
. All submissions go through an editorial review before being
posted to the site. You can also subscribe to the href=""> News RSS

Current and upcoming Java

Registered users can submit event listings for the href=""> Events Page using our href="">events submission form.
All submissions go through an editorial review before being posted to the

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

Was the JAR format meant to last this long?