Apache Harmony is retired at the Apache Software Foundation since Nov 16, 2011.

The information on these pages may be out of date, or may refer to resources that have moved or have been made read-only.
For more information please refer to the Apache Attic


How do I subscribe to the mail list?
You can subscribe by sending an email to dev-subscribe@harmony.apache.org. You will receive a confirmation request that you must respond to. After that, you can post to the dev list dev@harmony.apache.org. Please see our mailing list page for more information.

Back to top


When building the classlibrary, ant crashes with a compiler error, a heap error, or a reflection error.
These problems are all symptomatic of running out of java heap for ant. The solution is to set the ANT_OPTS environment variable to something bigger than the default. At the time of this writing, best practice is to set:
set ANT_OPTS="-Xmx256M"
Why doesn't Eclipse recognise my Harmony installation?
To teach Eclipse about the Apache Harmony layout requires installing a VM-type plug-in. Follow the instructions on our website for installing the plug-in.

Back to top

Original FAQ Questions from Project Launch

Why are you doing this?
We believe that there is broad community interest in coming together to create and use an open source, compatible implementation of J2SE 5, the latest version of the Java 2 Standard Edition specification.
What version of Java will you be implementing?
We are starting with Java SE 5, as that is the first version of Java SE for which the licensing allows an open source implementation, but we'll continue with Java SE 6 and any subsequent versions that follow.
Why haven't you done this before?
While the Java Community Process has allowed open source implementations of JSRs for a few years now, Java 5 is the first of the J2SE specs that we are able to do due to licensing reasons.
Are you doing this to attack Sun?
No, of course we aren't. Apache doesn't support projects that attack any entity, corporate or otherwise. Sun has been a long-time supporter of Apache and Apache projects, and Apache has a wide variety of projects that are implementations of Java specifications, such as Apache Geronimo, Apache Tomcat, Pluto, taglibs, etc.
This project is open to every interested member of the Java community, and every interested member is welcome to participate in whatever manner they choose.
Are you doing this because Sun refuses to release their source for J2SE under an open source license?
Not really. We would welcome Sun doing that (as well as anyone else w/ a J2SE implementation!) as it would save us a lot of time, and we wholeheartedly encourage them to do so ;) but Sun has the right to do what it chooses with it's intellectual property. Since we started the project, Sun has announced that they will be open sourcing their implementation, and they've started the process. Of course, we'll continue to develop Apache Harmony - multiple independent implementations of Java SE is good for the Java ecosystem.
Will your implementation be compatible with the specification?
How will you know?
We are going to test it with the TCK from Sun.
How will you license the TCK from Sun. Isn't it expensive?
Sun offers scholarships to qualified non-profits, academics and individuals. Apache is a qualified non-profit, and has benefitted from this scholarship before, with the J2EE 1.4 TCK license and support for the Apache Geronimo project, among others.
We will apply for the scholarship, and hope that Sun will grant us the license and support needed for us to do a good job.
How long will it take?
It will be done when it's done :) This will take a long time, but we hope that contributions from around the community will help us along the way.
Do you have any code to start?
No, we don't. We didn't want to "bless" any given implementation that might be donated (if such a thing could happen) but would rather let the community decide how it will create and develop the platform.
Will you accept SWT if IBM offers it?
Apache is always grateful for contributions from wherever they come, and IBM has a record of contributions to open source, but it would up to the project community to decide whether any particular contribution was used in the project.
Why are you going to have an architecture thread?
We wanted a way that we could bring together people from all over the Java community, even other open-source projects that are related. We welcome everyone to the discussion, no matter what license they choose to implement under, be it a free software license, an open source license or a proprietary license. We are here to open discussion and learning, and to design a great architecture for J2SE platforms.
At Apache, we think that a strong, diverse, meritocratic community is what makes a good open source project, and we want to be sure that everyone can participate in some way.
Does this compete with Kaffe and Classpath?
People from Kaffe and Classpath are helping start this project! Their experience in the open source VM and class library is invaluable, and they bring problems that the larger architecture community discussion can help solve.
We will have an implementation under the Apache License, but we think of this as complementary rather than competitive. And when we solve a few small license interoperability issues, we expect we'll be able to complement each other even more.
How will you ensure that the intellectual property of Sun and others is respected?
Good question - this is a very important issue for us. There are several ways, but this will be a topic for the community to work on at the beginning. So far we've thought of:
  • We shall ask any person that would be a committer to declare what kind of non-open-source class library or VM source code they have been exposed to, and allow us to keep them from participating in the related parts of the codebase where they may inadvertently violate the IP rights of someone else.
  • We shall require that any code contribution that isn't a new, original work of authorship created expressly for the Apache Harmony project be subject to the standard Apache process for provenance and licensing to ensure that we have an accurate record of every contribution that wasn't created expressly inside the Apache Harmony project.
  • We would like to perform continuous "surveillance" on the codebase we are building, and compare to class library and VMs from elsewhere, like Sun, IBM, BEA, Kaffe, etc to ensure that no code from those efforts become part of Apache Harmony without our knowledge. We do this to protect ourselves, our users, and of course those other efforts. We don't know yet how to do this, but are exploring ideas such as having a third party such as Black Duck or an existing licensee (or Sun!) do this for us. This, like all the topics herein, are open for discussion an change by the community.
  • Anything anyone can think of!
Won't this lead to fragmentation in the Java community?
We don't think so. Our intent is to bring people together, let us share what we know, solve common problems, and collaborate on things where we can. A diverse Java community is a healthy Java community. Multiple implementations of the Java specifications show the value of Java - that we do have a specification, that anyone is free to make a compatible implementation, and that users of Java have the opportunity to run their Java code in more places, on more platforms. This is the central promise of Java, and we think that our efforts support this.
How can I get involved and help influence and shape this proposal? Or is it too late?
Join the community and participate! It's never too late! We're just getting started, and everything is open to discussion - the community will change what the community wants to change. What we do in this project is decided by those participating in the project. This is the Apache Software Foundation - collaborative, meritocratic, and community-based.

Back to top