olá
seja bem-vindo, antes de mais nada
queria esclarecer que java não é apenas uma linguagem.
java é toda uma técnologia, na qual existe um linguagem de programação que possui o mesmo nome de técnologia. existe até uma outra linguagem dentro da técnologia java chamda Groovy, mas isso não vem ao caso
bem, existe a java virtual machine, que é o que faz a conversão do byte-code (código portável) para o código nativo. essa virtual machine tem as especificações abertas, quem quiser pode fazer a sua. mas a JVM da sun tem o código-fonte fechado.
mas dizer que java é fechado é errado: existem dezenas de APIs livres, dezenas de projetos livres, IDEs livres e todas as especificações são abertas.
qnto a sun começar a cobrar pelo java: isso é altamente improvavel, muito dificil acontecer. acho que isso nunca ira acontecer. mas a licença do java development kit e da JVM não permitem que a sun cobre por algo que vc ja pegou free… hoje o jdk e a jvm são gratuitos. a sun distribui eles gratuitamente. se duma hora para outro a sun resolver cobrar, ela devera cobrar apenas para as versões novas do jdk e da jvm. as versões anteriores continuaram gratuitas