我在哪裏可以找到用於下載JDK 1.5的完整源代碼?我無法在oracle網站上找到確切的鏈接;所提供的鏈接只能圈出。我在哪裏可以找到JDK 1.5源代碼?
回答
Java的名稱可以應用於許多不同的組件,它們一起工作。它可能對某些人來說意味着「Java虛擬機」,對其他人來說可能是「Java語言規範」,對許多人來說可能是「Java編譯器」,對許多人來說可能意味着「Java語言庫」。
如果您希望Java5的Java虛擬機(JVM)的源代碼爲it is available;但不在開源許可下。 Java的第一個「開放源代碼」副本與「Java 6」一起發佈。如果您需要Java5源代碼,則需要註冊一個「Java研究員許可協議」,以便您訪問JVM的源代碼(至少是Java5)。在編寫Java5環境的代碼時,擁有JVM的源代碼是完全沒有必要的。
如果您需要Java語言規範Java5的源代碼it is a text document (typically published as a book or on-line set of web pages)。儘管它可以讓你理解編譯器在某些情況下是否應該抱怨錯誤,但不需要編寫Java5環境的程序。
如果你想Java5編譯器,it can be downloaded in the oracle archives of old releases of the Java development toolkit。如果您想爲Java5編寫程序,那麼下載並使用此產品通常是開發Java5程序的最佳實踐。或者,您可以配置兼容的兼容編譯器(Java6/Java7)來發出Java5代碼。
如果您需要Java5語言庫,它們包含在Java5開發工具包中。 Java6和Java7開發工具包提供的語言庫需要付出很大的努力才能與Java5源代碼兼容;然而,較新的庫還包括Java5虛擬機無法引用的更新功能和操作。再次,有技術可以安全地使用Java的後向兼容版本(6/7);但是,如果他們的開發基於Java5開發工具包,則無需特別小心。語言庫的「源代碼」包含在Java研究許可協議下JVM的源代碼中,允許SUN包含此類源代碼。
雖然SUN已經從其他公司獲得許多技術的許可證,並且可以隨Java5自由分發,但SUN並不一定完全擁有Java5中的所有技術。因此,即使在Java研究者許可協議下,一些源代碼也不可用(儘管編譯的庫是)。開放源代碼項目(如OpenJDK)很快利用開放源代碼庫實現了這些缺失的「漏洞」,以獲得功能齊全的開源Java堆棧;但是,那是Java6 +(不是Java5)。
我看不到在這個鏈接中的源代碼只有二進制文件... – hakish
你可以得到的所有源代碼都在JDK中。 –
不要忘記Java 5.0是如此古老,它在Oracle收購Sun之前已經是生命的終結了。它還會對OpenJDK進行預約,因此唯一可用的源代碼位於JDK中。 –
Java 1.5中是不是開源。引用維基百科:
2006年11月13日,Sun根據GNU通用公共許可證(GPL)的條款發佈了許多Java作爲免費和開源軟件(FOSS)。 2007年5月8日,Sun完成了這一流程,除了Sun不擁有版權的一小部分代碼之外,Sun還使用免費軟件/開放源代碼分發條款提供了所有Java核心代碼。
據我記得有可能獲得用於研究目的的源代碼(我們的大學可以通過與Sun的特別協議訪問源代碼),但我認爲這不可能從Oracle獲取它。
在開源之前,有幾個免費的JVM和核心類的實現。以http://en.wikipedia.org/wiki/Free_Java_implementations爲例。
- 1. 我在哪裏可以看到Sun JDK的源代碼?
- 2. 我在哪裏可以獲得Android 1.5(蛋糕)源代碼?
- 3. 我在哪裏可以找到Vigenere密碼的Java源代碼?
- 4. 我可以在哪裏找到並瀏覽JDK 7源文件?
- 5. 我在哪裏可以找到J2ME的源代碼?
- 6. 我在哪裏可以找到TagLib#庫的源代碼?
- 7. 我在哪裏可以找到NServicebus 2.1源代碼?
- 8. 我在哪裏可以找到TextView.setText(..)方法的源代碼?
- 9. 我在哪裏可以找到MIDAS庫源代碼?
- 10. 我在哪裏可以找到itertools.combinations()函數的源代碼
- 11. 我在哪裏可以找到系統調用源代碼?
- 12. 我在哪裏可以找到igraph佈局源代碼?
- 13. 我在哪裏可以找到Singular(AngularJS for GWT)的源代碼?
- 14. 我在哪裏可以找到el-ri-1.0.jar的源代碼?
- 15. 我在哪裏可以找到Java數組的源代碼?
- 16. 我在哪裏可以找到C++的generic.h的源代碼?
- 17. 我在哪裏可以找到FlexMonkium源代碼?
- 18. 我在哪裏可以找到Glassfish 4的源代碼?
- 19. 我在哪裏可以找到JavaEE軟件包的源代碼?
- 20. 我在哪裏可以找到「暫停」工具的源代碼?
- 21. 我在哪裏可以找到springloaded-core jar的源代碼?
- 22. 我在哪裏可以找到CastButtonFactory的源代碼
- 23. 我在哪裏可以找到libcrypto ++的源代碼?
- 24. 我在哪裏可以找到JDK6源代碼庫?
- 25. 我在哪裏可以找到Ubuntu ARM init的源代碼?
- 26. 我在哪裏可以找到Aerith項目的源代碼
- 27. 我在哪裏可以找到RestKit Post源代碼或教程?
- 28. 我在哪裏可以找到JavaScript本機函數源代碼?
- 29. 我在哪裏可以找到android的firefox源代碼?
- 30. 我在哪裏可以找到javaee-5.jar源代碼?
感謝您的詳細回覆,我只是一個業餘愛好者,希望看到源代碼java.lang和其他基本包來淬火我的好奇心..我應該檢查Java檔案? :)! – hakish
如果你只是想看看「java.lang」的東西,看看Java6。至少可以在沒有限制性許可的情況下使用。另外,要認識到它大部分都是用Java編寫的,並有許多關鍵的「原生」背景。您需要知道您的JNI才能讀取它,而本機實現依賴於JVM實現。代碼的這些部分處理必須完成的事情,但不會在語言中暴露出來(像malloc'ing內存和以允許自動垃圾收集的方式註冊類)。有趣的東西;對典型項目很少有用。 –