Где найти исходный код Java JDK?
Я хотел бы посмотреть, что делает метод в Java API. Поэтому я хочу исходный код JDK. Перед переустановкой Linux у меня было src.zip
пакет со всем официальным исходным кодом в нем. Мне просто нужно было сказать Eclipse, где находится этот файл, и я смог увидеть код. Но теперь у меня больше нет файла...
Итак, вопрос: где я могу найти это?
11 ответов
Скорее всего, вы уже получили исходный код с JDK, это вопрос поиска, где он находится. В случае, если папка JDK не содержит исходный код:
sudo apt-get install openjdk-7-source
OSX Folks, поиск в доморощенных формулах.
В Ubuntu указанная выше команда поместит ваш файл souce в: /usr/lib/jvm/openjdk-7/
Хорошая новость заключается в том, что Eclipse уже доставит вас туда (Как связать Eclipse с исходным кодом Java):
Следуйте за оранжевыми кнопками
К сожалению, на момент написания этой статьи, несмотря на их собственное чтение документации, в каталогах установки JDK 7 или 8 при загрузке версии для Windows нет src.zip.
Примечание: возможно, это происходит потому, что многие из нас на самом деле не запускают установочный.exe, а извлекают его. Многие из нас не запускают Java-установку (полноценную установку Windows) по соображениям безопасности... мы просто хотим, чтобы JDK убрал путь, где потенциальные вирусы не смогут его найти.
Но их политика в отношении Windows.exe (какой бы она ни была на самом деле) действительно чокнутая, ОДНАКО, src.zip СУЩЕСТВУЕТ в установке linux (.tar.gz). Существует несколько способов извлечения.tar и.gz, и я предпочитаю бесплатную утилиту "7Zip".
- скачать Linux 64 бит.tar.gz
- используйте 7zip, чтобы распаковать.tar.gz в.tar
- используйте 7zip для распаковки.tar в каталог установки
- src.zip будет ждать вас в этом каталоге установки.
- вытащите его и разместите там, где вам нравится.
Оракул, это действительно глупо.
У меня была эта проблема с моей Ubuntu.
Все, что мне нужно было сделать, чтобы получить источники для моего java инсталляции:
sudo apt-get install sun-java6-source
JDK 1.6, который я сейчас использую на OSX Mountain Lion, не поставлялся с src.zip
либо, насколько я могу судить, больше нет поддерживаемого OSX JDK для 1.6.
Поэтому я скачал исходный код OpenJDK (используя ссылки из принятого ответа (+1)) и запустил:
cd ~/Downloads
mkdir jdk6src
cd jdk6src
tar xf ../openjdk-6-src-b27-26_oct_2012.tar.gz
cd jdk/src/share/classes
jar cf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/src.jar *
(Ваши имена файлов и пути могут отличаться...)
Ассоциировать это src.jar
с соответствующей платформой Java в вашей IDE, и вы должны быть готовы.
Существуют некоторые расхождения между исходным кодом OpenJDK и JDK, который я в данный момент использую (номера строк не совпадают в отладчике, например), но если все, что вам нужно, это zip/jar, на который будет указывать ваша IDE для относительно В некоторых случаях вам нужно взглянуть на какой-то код, чтобы понять, как что-то работает, тогда это должно сработать.
Этот файл содержится в стандартной загрузке JDK. Также ваша система Linux, вероятно, имеет JDK в хранилище. В моем Ubuntu Linux файл находится здесь: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip
Да!! Понял!
Я загрузил Java Developer Kit (JDK) с сайта sun.com для Linux. Был src.zip. Но сначала я удалил все пакеты Java с помощью synaptic.
Здесь официальная ссылка на JDK источник. http://www.oracle.com/technetwork/java/javase/downloads/index.html(вам может понадобиться прокрутить страницу вниз)
Итак, я открыл терминал на своем Mac и набрал: "echo $JAVA_HOME", затем я получил каталог, пошел туда и нашел src.zip
Официальная ссылка больше не предлагает оригинальный исходный код. Официальная ссылка и случайный поиск в Google приведут вас к открытому jdk. Open jdk вызывает проблемы с сборкой Android, если файлы сценария сборки не были изменены. Оригинальную упаковку можно найти здесь:
sudo add-apt-repository "deb http://ppa.launchpad.net/ferramroberto/java/ubuntu oneiric main"
В этом репозитории все еще есть пакет sun-java6-source. Кредит: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html