Onde encontrar o código-fonte Java JDK? [fechadas]

153

Gostaria de ver o que um método na API Java faz. Então, eu quero o código-fonte JDK. Antes de reinstalar o Linux, eu tinha o src.zippacote com todo o código fonte oficial. Eu só tinha que dizer ao Eclipse onde está esse arquivo e pude ver o código. Mas agora não tenho mais o arquivo ...

Portanto, a pergunta é: onde posso encontrá-lo?

Martijn Courteaux
fonte
16
Eu sempre encontrei o src.ziparquivo que contém a API Java pública no diretório de instalação do JDK. É isso que você está procurando (eu usei principalmente o Windows, então talvez a distribuição Linux não o tenha).
Ash
16
É ridículo que esta pergunta seja a nº 3 no google ao pesquisar a fonte JDK. Os nºs 1 e 2 são links Oracle que NÃO possuem links de código-fonte. Eu sempre faço essa pergunta ao instalar o JDK. Oracle por favor.
Andrzej Rehmann
4
src.zip é o pacote de origem apenas para a API principal. Não há fontes publicamente disponíveis para todo o Java SE da Oracle, algumas partes são de código fechado. No entanto, dependendo de uma plataforma, você pode instalar e usar no binário OpenJDK com 100% de fontes disponíveis. Para fontes - vá para openjdk.java.net e clone um repositório de fontes para a versão que você precisa. Para binários - alguns fornecedores fornecem esses binários, incluindo o IcedTea para linux.
precisa
1
@ Olá, estou usando Java desde 1996 e estou arrancando os cabelos tentando encontrar o oracle src.zip para o JDK7. Isso é incrivelmente estúpido. Onde está o TF ???? Nunca foi tão difícil assim. Note, eu não quero o OpenJDK.
2
@ Ash, eu sempre encontrei um src.zip no diretório de instalação também. Você o extrairia para um diretório ./src/, e tudo estava bem. Mas não está lá agora. De fato, o leia-me do JDK 1.7 indica que deve haver um src.zip presente. E não tem. Isso é enlouquecedor.

Respostas:

128

Você não disse qual versão deseja, mas um arquivo do código-fonte do JDK 8 pode ser baixado aqui , junto com o JDK 7 e o JDK 6 .

Além disso, você pode procurar ou clonar os repositórios do Mercurial: 8 , 7 , 6 .

Jon Skeet
fonte
1
Sim; digamos que eu quero 6 e, nessa página de download, o que eu tenho para fazer o download? O arquivo grande jdk-6u21-ea-src-b04-jrl-05_may_2010.jar, 136.48 MB? Eu já baixei esse. Mas não contém o código fonte.
Martijn Courteaux
3
@ Martijn: Você tentou baixar o arquivo jar grande e depois ler o README dentro dele? Basicamente, você apenas executa com java -jar jdk-6u21-ea-src-b04-jrl-05_may_2010.jar. Ele extrairá a fonte.
Jon Skeet
2
Sim eu fiz. E eu extraí como você escreveu. Mas não há jar ou zip de origem.
Martijn Courteaux
1
Só queria acrescentar que o local atual (2013) agora é jdk7.java.net, que redireciona para o OTN para qualquer download.
Kedar Mhaswade
3
Para 1.7, há também sourceforge.net/projects/jdk7src
Jason C
32

Provavelmente, você já obteve o código-fonte com o JDK, é questão de descobrir onde está. No caso, a pasta JDK não contém o código-fonte:

sudo apt-get install openjdk-7-source

Pessoal do OSX, procure em fórmulas caseiras.

No ubuntu, o comando acima colocaria seu arquivo souce em: / usr / lib / jvm / openjdk-7 /

A boa notícia é que o Eclipse já o levará até lá (como ligar o Eclipse ao código-fonte Java):

Siga os botões laranja

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

amertkara
fonte
16

Infelizmente, no momento da redação deste artigo, apesar de seu próprio leia-me de documentação, não src.zip nos diretórios de instalação do JDK 7 ou 8 quando você baixa a versão do Windows .

Nota: talvez isso aconteça porque muitos de nós não executam o install .exe, mas o extraem. Muitos de nós não executam a instalação do Java (a instalação completa do Windows) por motivos de segurança ... nós apenas queremos que o JDK coloque um lugar fora do caminho em que os possíveis vírus não possam encontrá-lo.

Mas a política deles em relação ao Windows .exe (o que realmente é) é realmente louca; NO ENTANTO , o src.zip EXISTE na instalação do Linux (a .tar.gz). Existem várias maneiras de extrair um .tar e um .gz, e eu prefiro o utilitário "7Zip" gratuito.

  1. baixe o Linux de 64 bits .tar.gz
  2. use 7zip para descompactar o arquivo .tar.gz em um arquivo .tar
  3. use 7zip para extrair o .tar para o diretório de instalação
  4. src.zip estará esperando por você nesse diretório de instalação.
  5. retire-o e coloque-o onde quiser.

Oracle, isso é realmente muito estúpido.


fonte
3
O Oracle JDK8 (pelo menos 1.8.60) tinha o src.zip para mim no Windows. No entanto, o Eclipse não o pegou por padrão.
milletron 12/09/15
@ Milletron, eu também notei isso em um lançamento recente do Windows. Tenho a sensação de que algo quebrou em suas janelas baixar a produção de imagens por um período de tempo anteriormente. Talvez relacionado à diferença na terminação de linha entre o unix (LF) e o Windows (CRLF)?
Isto é o que eu tinha que fazer também para o Java 9. #
447
11

Eu tive esse problema com o meu Ubuntu.

Tudo o que eu precisava fazer para obter fontes para a minha instalação do java foi:

sudo apt-get install sun-java6-source 
Xorty
fonte
No Ubuntu 14.04:E: Unable to locate package sun-java6-source
Nateowami
8

O JDK 1.6 que estou usando atualmente no OSX Mountain Lion não veio com um src.zip , e, até onde posso dizer, não há mais OSX JDK para 1.6 disponível.

Então baixei a fonte do OpenJDK (usando os links da resposta aceita (+1)) e executei:

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 *

(seus nomes de arquivo e caminhos podem variar ...)

Associe isso src.jarà plataforma Java apropriada no seu IDE e você deve estar pronto.

Existem algumas discrepâncias entre a fonte do OpenJDK e o JDK que estou executando no momento (os números de linha não correspondem no depurador, por exemplo), mas se tudo o que você deseja é um zip / jar para apontar seu IDE para o relativamente Em alguns casos, você precisa espiar algum código para entender como algo funciona, e isso deve funcionar.

MisterEd
fonte
1
thx, eu precisava disso enquanto usava o mac. não há instruções claras sobre o sistema operacional mais recente e como obter a fonte. (eles toda a conversa sobre o download de atualizações que não incluem a fonte ou o download da Oracle, mas é tudo vago ou errónea, de uma forma ou de outra)
DTC
1
Só queria destacar que esta é a maneira certa de fazê-lo, porque, como o @dtc disse, todas as outras instruções existentes estão erradas ou obsoletas. Fiz isso com o IntelliJ 15 em um projeto Scala, funcionou perfeitamente. Obrigado @MisterEd!
Mjarez #
src.jar não é uma fonte completa. Por ex, ele não contém a fonte de javax.net
Kannan Ramamoorthy
4

Este arquivo está contido no download padrão do JDK . Além disso, seu sistema Linux provavelmente possui JDK no repositório. No meu arquivo Ubuntu Linux está localizado aqui: /usr/lib/jvm/java-6-sun-1.6.0.20/src.zip

vbezhenar
fonte
Aha! Você pode postar quais pacotes você instalou para sua Java VM e JDK, por favor. Porque eu não tenho essa pasta.
Martijn Courteaux
4

No JDK 8, a fonte pode ser encontrada em /src.zip. Agora, em algumas versões intermediárias, esse zip estava ausente, mas novamente está disponível.insira a descrição da imagem aqui

certifique-se de selecionar a fonte também no assistente de instalação.

dvsakgec
fonte
2

Bem, abri o terminal no meu Mac e digite: "echo $ JAVA_HOME", então peguei o diretório, fui lá e encontrei o src.zip

petery
fonte
1

Sim!! Entendi!

Fiz o download do Java Developer Kit (JDK) do sun.com para Linux. Havia o src.zip. Mas primeiro desinstalei todos os pacotes Java com o synaptic.

Martijn Courteaux
fonte
note que no Linux realmente não há necessidade de ser root para instalar o Java. Eu sempre (há mais de dez anos) instalo o Java como um usuário não root nos meus sistemas Un * x (então, não, não uso o apt-get / synaptic / o que for).
SyntaxT3rr0r 27/02
1

O link oficial não oferece mais o código fonte original. O link oficial e as pesquisas casuais do Google o levarão ao jdk aberto. O jdk aberto causa problemas com a compilação android, a menos que os arquivos do script de compilação sejam modificados. A embalagem original pode ser encontrada aqui:

sudo add-apt-repository "deb http://ppa.launchpad.net/ferramroberto/java/ubuntu oneiric main"

Esse repositório ainda possui o pacote sun-java6-source. Crédito: http://pulasthisupun.blogspot.com/2012/05/installing-sun-java-6-with-apt-get-in.html

Jitendra Kulkarni
fonte