Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 License  





2 Uses  





3 History  





4 Development team  





5 Virtual machine integration  





6 Support for the new language features in Java 1.5  





7 Classes from the omg.org domain  





8 See also  





9 Notes  





10 References  





11 External links  














GNU Classpath






Deutsch
Español
فارسی
Français

Lietuvių

Polski
Português
Русский
Српски / srpski
Українська

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


GNU Classpath
Developer(s)GNU Project
(formally held by FSF)
Final release

0.99[1] / March 16, 2012; 12 years ago (2012-03-16)

Repository
Written inC and Java
Operating systemCross-platform
TypeLibrary
LicenseGPL linking exception
Websitewww.gnu.org/software/classpath/

GNU Classpath is a free software implementation of the standard class library for the Java programming language. Most classes from J2SE 1.4 and 5.0 are implemented. Classpath can thus be used to run Java-based applications. GNU Classpath is a part of the GNU Project. It was originally developed in parallel with libgcj due to license incompatibilities, but later the two projects merged.

GNU Classpath was deemed a high priority project by the Free Software Foundation. When the Classpath project began, the license for the official Java implementation from Sun Microsystems did not allow distribution of any alterations. Since the inception of the Classpath project, the OpenJDK was released under the GPL and now serves as the official reference implementation for the Java platform.

License[edit]

GNU Classpath is licensed under the GNU General Public License with a linking exception. This is a free software license. All code is formally owned by the Free Software Foundation,[citation needed] and this owner is bound by its own contractual obligations to the developers.[clarification needed]

Uses[edit]

GNU Classpath is used by many free Java runtimes (like Kaffe, SableVM, JamVM, Jikes RVM, and VMKit) because every full-featured Java virtual machine must provide an implementation of the standard class libraries.

Some other uses include:

History[edit]

GNU Classpath development started in 1998 with five developers.[citation needed] During the history, it merged several times with other projects having similar goals (Kaffe, libgcj). In the past, GNU Classpath supplied its own virtual machine (Japhar). As Classpath was becoming a base library, shared with a lot of different projects, this virtual machine received less and less attention and is now no longer supported.[citation needed]

After implementing the majority of the official Java 1.4 API, the work in the project became more bug oriented rather than API coverage oriented. On October 24, 2006, the implementation of the last missing 1.4 class, HTMLWriter, was committed. The development speed (computed mathematically as the average number of the new lines of code per day) reached its highest ever in 2006.[citation needed]

The name GNU Classpath was originally suggested by Bradley M. Kuhn to one of the first developers, Paul Fisher. At the time, there was great concern in the Free Java implementations community about enforcement of Sun's trademark on Java against free implementations. Kuhn suggested the name $CLASSPATH, which is the environment variable used by most Java systems to indicate where the Java libraries reside on the computer. Since $CLASSPATH often expanded to a path name that included the word java (such as /usr/lib/java), it was a way to evoke the name Java without actually saying it. Fisher and other developers didn't like the unsightly use of the $ and all capital letters and settled on Classpath.

Development team[edit]

The maintainer takes care of the legal side of the project, prepares the regular project releases and does some quality management. The maintainer also grants the CVS access permissions.[citation needed]

GNU Classpath has no formal hierarchy. The work is done by the most technically capable, and there is no strict work division either. All code changes are first posted to the discussion list as patches where they can be opposed if needed. The project typically receives between five and eight patches per day.

The GNU Classpath library code coverage progress can be tracked against OpenJDK6[4] and OpenJDK7.[5]

Virtual machine integration[edit]

GNU Classpath contains classes from the official Java API namespace. Where calls to native code are necessary or highly desired, this is done from a small number of "VM" classes. The name of such a VM class matches the name of the class requiring native methods, plus the additional VM prefix: VMObject, VMString and so on. VM classes, stored separately from the rest of code, are package private and final. The methods of these classes contain the keyword native, indicating the necessity of the supporting native library. Such libraries are provided by the authors of a Java virtual machine, hence GNU Classpath can be connected to nearly any Java virtual machine if the sources of such virtual machine are available and can be modified.

Support for the new language features in Java 1.5[edit]

Before version 0.95, each GNU Classpath release consisted of two separate release tarballs; one that represented the state of the main development branch and another that contained the contents of a more experimental branch, supporting the additions, such as generics, enumerations and annotations, present in Java 1.5.[6]

Since version 0.95,[7] Java 1.5 additions like generics have been fully integrated into the main branch. The branch can be built by using the Eclipse compiler, ecj, to compile Java 1.5 source code to bytecode. In the case of GCJ, it uses ecj to perform this initial stage, then converts the bytecode to native code. From 0.95 onwards, GNU Classpath also supports compiling and running the newly GPLed open-source javac compiler using GNU Classpath and also allows the GNU Classpath class library, tools and examples to be compiled with javac itself.

Classes from the omg.org domain[edit]

Sun and GNU Corba interact in a two client game[a]

GNU Classpath does not accept any code that has a non-free license, or that was automatically generated from code with a non-free license. The standard Java API contains numerous classes from the omg.org domain that are normally generated from the IDL files, released by the Object Management Group. The "use, but no modify" license of these files counts as non-free. For this reason, the mentioned classes in the GNU Classpath project were written from scratch, using only the official printed OMG specifications. Hence this part of GNU Classpath is as free as any other code in the project.

See also[edit]

Notes[edit]

  1. ^ Fosdem 2006 included this and other demonstrations of data exchange between Sun's and Classpath implementations of CORBA.[8] The source code is available[9] in the Classpath repository.

References[edit]

  1. ^ Hughes, Andrew John (2012-03-16). "GNU Classpath 0.99 Released!" (World Wide Web log). Fuseyism. Archived from the original on 2012-12-14. Retrieved 2012-03-20.
  • ^ GCJ applet viewer, Koders, archived from the original on 2009-09-18, retrieved 2009-09-14.
  • ^ "Jupiter", EECG, U Toronto.
  • ^ "GNU Classpath Library Coverage against OpenJDK6", J API, Fuseyism, archived from the original on 2015-09-06, retrieved 2012-05-31.
  • ^ "GNU Classpath Library Coverage against OpenJDK7", J API, Fuseyism, archived from the original on 2016-03-04, retrieved 2012-05-31.
  • ^ "GNU Classpath "95% and counting" 0.19 released", The GNU Project (announcement), Software, The Free Software Foundation, 2005-11-02, retrieved 31 May 2011.
  • ^ "The release of GNU Classpath 0.98 "Better Late Than Never", The GNU Project (announcement), Software, The Free Software Foundation, 2009-02-05.
  • ^ Fosdem (conference archive), Classpath, 2006.
  • ^ "Classpath", The GNU is Not Unix Project (source code) (example), The Free Software Foundation.
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=GNU_Classpath&oldid=1190463746"

    Categories: 
    GNU Project software
    Java (programming language) libraries
    Java platform
    Software using the GPL linking exception
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Articles needing additional references from July 2023
    All articles needing additional references
    All articles with unsourced statements
    Articles with unsourced statements from December 2011
    Wikipedia articles needing clarification from October 2010
    Articles with unsourced statements from August 2007
    Articles with unsourced statements from August 2010
     



    This page was last edited on 18 December 2023, at 01:35 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki