Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Java стандартты сыныптар кітапханасын іске асыру
Implementation of standard class library of Java
GNU Classpath – Java бағдарламалау тілі үшін стандартты сыныптар кітапханасының ашық кодты бағдарламалық жасақтамасы. J2SE 1.4 және 5.0 нұсқаларының көптеген сыныптары іске асырылған. Осылайша, Classpath Java негізіндегі қосымшаларды іске қосу үшін қолданылуы мүмкін. GNU Classpath – GNU жобасының бір бөлігі. Бұл жоба бастапқыда лицензиялық келіспеушіліктерге байланысты libgcj жобасымен бірге әзірленді, бірақ кейін екі жоба біріктірілді. GNU Classpath-ке Ерікді Бағдарламалық Қамтамасыз ету Қоры тарапынан жоғары дәреже берілді. Classpath жобасы басталған кезде, Sun Microsystems компаниясының Java-ның ресми іске асырылу лицензиясы, ешқандай өзгерістерді таратуға рұқсат бермейтін. Classpath жобасы басталғаннан бері OpenJDK GPL лицензиясымен шығарылды және қазір Java платформасының ресми анықтамалық іске асырылуы болып табылады.
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.
Лицензия
GNU Classpath GNU жалпыға ортақ лицензиясы (GNU General Public License) бойынша лицензияланған, бірақ байланысқа қатысты ерекшелік бар. Бұл – ақысыз бағдарламалық қамтамасыз ету лицензиясы. Барлық код Free Software Foundation-ның меншігінде, және бұл меншік иесі әзірлеушілерге қатысты өз шарттық міндеттемелерімен шектеулі.
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, and this owner is bound by its own contractual obligations to the developers.
Тарих
GNU Classpath 1998 жылы бес бағдарламашымен бастау алды. Тарихы барысында ол Kaffe және libgcj сияқты ұқсас мақсаттары бар басқа жобалармен бірнеше рет бірікті. Бұрын GNU Classpath өзінің виртуалды машинасы (Japhar) болған. Classpath көптеген жобалармен ортақ қолданылатын базалық кітапханаға айналған соң, бұл виртуалды машинаға назар азайды және қазір қолдау көрсетілмейді. Java 1.4 API-ның басым бөлігін іске асырғаннан кейін, жобадағы жұмыс API-ны кеңейтуге емес, қателерді жоюға бағытталды. 2006 жылдың 24 қазанында соңғы жетіспейтін 1.4 класы – HTMLWriter іске асырылды. Даму жылдамдығы (күн сайынғы жаңа кодтар санының орташасы ретінде математикалық есептелген) 2006 жылы ең жоғары деңгейге жетті. GNU Classpath атауын алғашқы әзірлеушілердің бірі Пол Фишерге Брэдли М. Кун ұсынған. Сол кезде ашық Java іске асыру қауымдастығында Sun компаниясының Java сауда белгісін ашық іске асыруларға қарсы қолдануына қатысты үлкен алаңдаушылық болды. Кун $CLASSPATH атауын ұсынды, ол көптеген Java жүйелері Java кітапханаларының орналасқан жерін көрсету үшін қолданатын орта айнымалысы. $CLASSPATH көбінесе java сөзін қамтитын жол атауымен (мысалы, /usr/lib/java) кеңейтілгендіктен, бұл Java атауын тікелей айтпастан қолданудың бір жолы болды. Фишер және басқа да бағдарламашылар $ белгісін және барлық әріптерді үлкен етіп жазуды ұнатпады және Classpath-қа тоқталысты.
GNU Classpath development started in 1998 with five developers. 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. 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. 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.
Даму тобы
Жөндеуші жобаның заңдық мәселелерін шешеді, жобаның үнемі жаңа нұсқаларын дайындайды және сапаны бақылайды. Жөндеуші сонымен қатар CVS-ке кіруге рұқсат береді. GNU Classpath-тың ресми иерархиясы жоқ. Жұмысты ең білікті мамандар атқарады, және жұмысқа қатаң бөлініс те жоқ. Барлық код өзгерістері алдымен талқылау тізіміне түзетулер түрінде жіберіледі, онда қажет болған жағдайда оларға қарсылық білдірілуі мүмкін. Жобаға әдетте күніне бес-сегіз түзету түседі. GNU Classpath кітапханасының кодты қамту деңгейін OpenJDK6 және OpenJDK7-мен салыстырып бақылауға болады.
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. 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 and OpenJDK7.
Виртуалды машинаны интеграциялау
GNU Classpath ресми Java API атау кеңістігіндегі кластарды қамтиды. Егер негізгі кодқа шақыру қажет болса немесе осы шақырулар аса қажет болса, олар аз ғана "VM" кластары арқылы жүзеге асырылады. Мұндай VM класының атауы, негізгі әдістерді қажет ететін кластың атауымен сәйкес келеді және қосымша "VM" префиксімен толықтырылады: VMObject, VMString және т.б. Қалған кодтан бөлек сақталатын VM кластары пакеттік және соңғы болып табылады. Бұл кластардың әдістерінде "native" кілт сөзі болады, ол қолдау көрсету үшін негізгі кітапхананың қажеттілігін көрсетеді. Мұндай кітапханаларды Java виртуалды машинасының авторлары ұсынады, сондықтан GNU Classpath, егер аталған виртуалды машинаның бастапқы коды қолжетімді және өзгертілуге жарамды болса, дерлік кез келген Java виртуалды машинасына қосылуы мүмкін.
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.
Java 1.5 тілінің жаңа мүмкіндіктерін қолдау
0.95 нұсқасына дейін әр GNU Classpath релизі екі бөлек релизтік архивтен тұратын; бірі негізгі даму тармағының күйін көрсететін, ал екіншісі Java 1.5-тегі generics, enum және аннотациялар сияқты жаңа мүмкіндіктерді қолдайтын, тәжірибелік тармақтың мазмұнын қамтитын. 0.95 нұсқасынан бастап Java 1.5-тегі generics сияқты жаңа мүмкіндіктер негізгі тармаққа толыққандай енгізілді. Java 1.5 кодынан байт-код жасау үшін Eclipse компиляторы ecj қолданыла алады. GCJ жағдайында, ол осы алғашқы кезеңді орындау үшін ecj-ді пайдаланады, содан кейін байт-кодты машиналық кодқа түрлендіреді. 0.95 нұсқасынан бастап GNU Classpath GNU Classpath-ты пайдаланып, жаңадан GPL лицензиясымен шыққан ашық кодты javac компиляторын құрастыру және іске қосуды қолдайды, сондай-ақ GNU Classpath сыныптар кітапханасын, құралдарын және мысалдарының javac арқылы құрастырылуына мүмкіндік береді.
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. Since version 0.95, 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.
Omg.org доменінен алынған сыныптар
GNU Classpath еркін емес лицензияға ие кодты немесе еркін емес лицензияға ие кодтан автоматты түрде жасалған кодты қабылдамайды. Стандартты Java API-де omg.org доменінен көптеген кластар бар, олар әдетте Object Management Group ұйымы шығарған IDL файлдарынан жасалады. Бұл файлдардың "қолдануға болады, бірақ өзгертуге болмайды" лицензиясы еркін емес деп есептеледі. Осы себепті, GNU Classpath жобасындағы аталған кластар тек ресми жарияланған OMG спецификацияларын пайдаланып, бастапқы кодтан жазылды. Сондықтан GNU Classpath-тың осы бөлігі жобадағы кез келген басқа код сияқты толығымен еркін.
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.