String.java (Só uma curiosidade)

Descompactei o arquivo rt.jar que fica na \jre\lib e pude visualizar os diretórios. Em java\lang\ eu visualizo logicamente a classe String. Eu pensei que iria encontrar o código fonte da classe String, mas eu já encontrei diretamente o String.class. Não é possível obter o código fonte das classes que compõem a API do Java?

Você pode usar o Java Decompiler para abrir o arquivo JAR (sem precisar descompactar) e visualizar o código fonte das classes.

Se não me engano, tanto o JDK da Oracle com o OpenJDK trazem um arquivo chamado src.zip que tem todos os .java. É desse local que as IDEs pegam os códigos fontes para exibir durante o debug.

Na minha máquina, o caminho pra chegar nesse zip é:

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/src.zip

Se você estiver usando o Eclipse, é só fazer isso aqui para encontrar onde está esse zip:

Preferences -> Java -> Installed JREs -> [Seleciona um dos JREs instalados] -> Edit -> [Procura e expande o jar chamado rt.jar]

Fiz um arquivo de texto com a estrutura de arquivos dentro desse zip, caso você queira ver:
jdk_src.txt (482,1 KB)

2 curtidas

Descompilar um fonte, não te traz informações legíveis sobre a implementação.

Instale o JDK e os fontes estarão disponíveis no arquivo src.zip, na raíz da instalação.

2 curtidas

Boa @lvbarbosa, não me lembrava. Na pasta raiz da jdk instalada na minha máquina, tem o src.zip.

2 curtidas

Normalmente, vc consegue encontrar código fonte de tudo qualquer coisa no grepcode. Aqui tá o String.java http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java

1 curtida