The "100% Pure Java" initiative was announced by Sun in December of 1996.
The announced purpose was "software portability" - a variant on the then-ubiquitous "Write Once, Run Anywhere" Sun Java slogan. The stated goal was to encourage everyone writing Java, but especially ISVs,
to write Java code that would run correctly1 on any platform that has the Java compatible logo, in other words, that had a compliant Java Virtual Machine.
To do this, programmers had to ensure that their Java code did not use any vendor's proprietary APIs, and had no external dependencies aside from the Java Core APIs themselves. Originally no native methods were permitted, although that goal was relaxed for a while before the Java Native Interface (JNI) interface was made available.
Of course, forbidding native code had the slightly ironic side effect that the Java Virtual Machine (JVM) itself wasn't "100% Pure Java" as it required native methods to talk to the host OS. "100% Pure Java" was meant purely for applications.
This was before Java moved mostly to the server side. In today's world of servlets, JSPs and EJBs, this particular program no longer has much meaning.
Sun offered a "100% Pure Java" certification program. Passing the Sun-sponsored test at a third-party compliance lab (for a fee, of course) allowed an ISV to use a Sun-approved "100% Pure Java" logo on their software. This program was a co-marketing program like Intel's "Intel Inside" and also an application logo program like those offered by Microsoft.
The program was quite valuable to vendors as most of the Java market took "100% Pure Java" very seriously in Java's early acceptance days. Microsoft's "embrace and extend" strategy made a lot of Java development shops nervous, as they feared fragmentation of the Java market driven by Microsoft's OS dominance.
"100% Pure Java" products could be relied on to run on all platforms that supported Java.
The "100% Pure Java" program is now in the final stages of EOL (End of Life).
The certification is no longer offered, and the logo has been essentially meaningless since Sun shifted focus to J2EE. The defeat of Microsoft's efforts to commandeer Java for their own purposes went a long way to making the program irrelevant as well. But the final death blow proved to be technical. Changes in Merlin, the next major release of the Java 2 Standard Edition SDK will break the testing algorithms in Sun's free JavaPureCheck tool, and it is therefore being discontinued. Once Java 2 Standard Edition v1.4 is released, JavaPureCheck will no longer be available.
The original EOL date for "100% Pure Java" was 28th November, 2001. Whether it ends then, or is granted a reprieve due to the expected Java 2 Standard Edition v1.4 schedule slip to February 2003, no one will come to the funeral, and few will mourn.
Alas, "100% Pure Java," we hardly knew ye.
- Meaning that the Java code would perform as designed. No guarantee expressed or implied of being free from bugs or suitable for any particular purpose. As ever.