Managing Multiple Java Versions on Mac

Apple announced to remove Java Preferences app from Mac OS X http://support.apple.com/kb/HT5493. Let’s try to fix it. Generally, java applications will use the JAVA_HOME environment variable to pick a JDK.

To set to JDK 6

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

To set JDK 7

export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)

To set JDK 8

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

Created aliases for my zsh

alias setjdk16='export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)'
alias setjdk17='export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)'
alias setjdk18='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)'

You can also read Managing Multiple Java Versions on Mac using Jenv

Gerenciando múltiplas versões Java no Mac

A partir da versão 7, a Apple parou de gerenciar o JDK para Mac OS. Essa responsabilidade agora é da Oracle. Até a JDK 6, a Apple trazia como default o Java instalado, acredito que além de uma questão política das empresas, deve ter relação com o fato que de tempos em tempos sempre é publicado uma vunerabilidade da JVM em sites de segurança.

Porém, como desenvolvedor, pode ser necessário você trabalhar com várias versões de JDK e ai que entra a parte interessante da dica.

Na pasta ” /Library/Java/” do Mac OS estão todas as instalações do Java da sua máquina. Lá existem três pastas (Extensions, Home e JavaVirtualMachines). Na pasta JavaVirtualMachines é possível checar todas jdk instaladas, pois é salvo um arquivo, como “jdk1.7.0_21.jdk”.

Caso esteja testando o Jdk 8, e precise manter o 6 e o 7 configurado, é possível dinamicamente setar o JAVA_HOME, através de um simples comando, configurado no arquivo .bash_profile.

O arquivo bash_profile fica no caminho ~/.bash_profile e pode ser editado com qualquer editor do terminal, como vi, por exemplo.

Com o editor aberto, adicione as seguintes linhas ao arquivo:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

E para definir o comando que seta a JAVA_HOME atual, crie as três linhas abaixo:

alias setjdk16=’export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)’

alias setjdk17=’export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)’

alias setjdk18=’export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)’

Para definir qual jdk é a default, basta chamar o comando do alias.

Exemplo para setar JDK 6, executar setjdk16 e testar com javac -version ou java-version. O mesmo para as outras versões.

Desenvolvedor JAVA/Web

Pessoal,

Estou com 3 vagas para programador Java em SP, em um banco americano, muito bem colocado aqui no Brasil.

Vocês tem alguém para indicar ? Segue a descrição abaixo.

Desenvolvedor JAVA/Web Senior (1 vaga)

# Formação superior completa na área de informática
# Experiência mínima de cinco anos em desenvolvimento Java/Web
# Conhecimento desejável: Tomcat, Spring, Maven, Subversion, Pentaho Integration (Kettle) e SQL (Oracle e Sybase)
# Certificação de Java Programmer
# Desejável inglês fluente
# Local: Vila Olímpia, São Paulo – SP

Desenvolvedor JAVA/Web Pleno (2 vagas)
# Formação superior completa na área de informática
# Experiência mínima de três anos em desenvolvimento Java/Web
# Conhecimento desejável: Tomcat, Spring, Maven, Subversion, Pentaho Integration (Kettle) e SQL (Oracle e Sybase)
# Desejável certificação de Java Programmer
# Desejável Inglês fluente
# Local: Vila Olímpia, São Paulo – SP

Se você conhece alguém, pode encaminhar o CV para kleber.carvalho arroba gmail.com

Obrigado

Kleber Rodrigo de Carvalho

 

Oracle vs Google

Hoje eu decidi me atualizar sobre essa briga juridica entre Oracle vs Google, já que cada dia mais o Android está presente na minha vida.

Um artigo da lista the must read é Oracle vs Google: entrevista com Bruno Souza. Depois de entender e ter um overwiew e tentar entender o que está acontecendo, aconselho a ler também.

Details from Oracle’s Complaint Against Google na OSnews

Quite the firestorm – Escrito pelo James Gosling.

Mas se você quer entender de uma vez what’s going on nessa batalhar entre Oracle e Google no que se refere ao Android, aconselho a ler My Thoughts on Oracle v Google por Charles Nutter.

Kleber Rodrigo Carvalho

Java technology, IBM style: A new era in Java technology

The eagerly awaited final release of Java™ SE 7 is expected to include enhancements to all the major aspects of the language and the virtual machine. Both Oracle and IBM have released Early Access downloads of their respective implementations for review and feedback. In this article, Chris Bailey, architect of the Java service strategy at the IBM Java Technology Center, introduces some of the changes in store, from both the Oracle specification and the value-add that IBM provides. Continue reading it here.

Kleber Rodrigo de Carvalho