Como remover corretamente o OpenJDK / OpenJRE e definir o SunJDK / SunJRE como padrão

48

O Ubuntu parece preferir o OpenJDK / JRE ao Sun JDK / JRE. Mesmo depois de instalar o Sun JRE, o JDK e o plugin e passar algum tempo pesquisando os pacotes relacionados ao OpenJDK, o apt-get os instalou de volta com alguns pacotes como uma dependência. Esse comportamento pode ser corrigido em favor dos pacotes Sun Java? Eu gostaria de ter uma e apenas Java Stack instalada (sim, é um pouco de OCD , mas eu gosto de ter meus sistemas limpos) e quero que seja Sun Java.

Atualização: como Marcos Roriz observa, o problema parece estar no default-jre (no qual os pacotes dependentes de Java usam para depender) apontando para o OpenJDK, então a questão parece ser sobre como hackear o default-jre / default-jdk para apontar para o Sun Java.

    
por Ivan 11.01.2011 / 22:46

10 respostas

35

Instalando o Sun Java nas versões mais antigas do Ubuntu (9.10 e abaixo)

Eu tive o mesmo problema uma vez há cerca de três anos com o Ubuntu 8.04, eu acho. Houve um problema estranho ao usar openjre e o problema foi resolvido usando a versão sun jre. Aqui estão os passos no terminal que se aplicam às versões abaixo de 10.04, uma vez que a partir de 10.04 sun java foi descartada e substituída por openjre:

sudo apt-get remove openjdk-6-jre default-jre default-jre-headless

sudo apt-get install sun-java6-jre sun-java6-bin sun-java6-plugin sun-java6-fonts

(Tudo relacionado ao Sun java. Só para ter certeza)

Depois disso, se você removeu o openjdk, você só teria o sun java. Se você não removeu, então você tem os dois. Para mudar de um para outro, faça isso:

sudo update-java-alternatives -l - Isso mostrará a lista de mecanismos java que você pode usar.

O nome da alternativa java é o da esquerda, por exemplo, o openjdk aparece assim:

java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk

E você configuraria o sistema para openjdk assim:

sudo update-java-alternatives -s java-6-openjdk

Se você quiser usar a Sun, faça isso (após a instalação dos pacotes solares):

sudo update-java-alternatives -s java-6-sun

Se você quiser usar a versão java 7, simplesmente altere o número 6 mencionado acima para 7. Por exemplo, se eu quisesse instalar a versão openjre 7, eu iria:

sudo apt-get install openjdk-7-jre default-jre default-jre-headless

Instalando o Sun Java nas versões mais recentes do Ubuntu (10.04 acima)

Abra o terminal e digite o seguinte:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update   
sudo apt-get upgrade   
sudo apt-get install oracle-java7-installer

Isso deve instalar a versão Sun Java em seu sistema. Para alterar, basta fazer o seguinte caso você tenha outras alternativas em java:

sudo update-java-alternatives -s java-7-oracle  

Se você deseja que a instalação seja automática, digite o seguinte:

sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections

depois disso, basta fazer o seguinte para definir as variáveis de ambiente padrão:

sudo apt-get install oracle-java7-set-default

Observe que o PPA inclui as versões 6, 7 e 8. Assim, você pode instalar qualquer um deles simplesmente alterando o número na linha de instalação, por exemplo:

sudo apt-get install oracle-java8-installer

Instalaria o Java 8. Depois de instalar a versão do Java que você deseja usar e configurando a versão para o padrão com o comando update-java-alternatives , é possível verificar qual versão você está usando, digitando o seguinte:

java -version

Ele mostrará a versão padrão que você está usando no momento.

Gostaria de mencionar também que o OpenJRE / JDK percorreu um longo caminho de 2 ou 3 anos atrás, quando teve muitos problemas que foram resolvidos mudando para o Sun Java.

    
por Luis Alvarado 11.01.2011 / 23:06
11

Eu acho que o problema é que alguns pacotes Java dependem do default-jre que aponta para openjdk-jre. Eu não acho que há uma maneira fácil de desinstalar o openjdk permanentemente. O problema é que você provavelmente vai se deparar com o openjdk novamente quando instalar um pacote / programa java.

Mas se você estiver disposto a ter os dois, é fácil definir os programas de tempo de execução do java (java, javah, javap e assim por diante) para a implementação do sun. Faça isso:

sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

ou se você é um java dev (instale o sdk e srcs):

sudo apt-get install sun-java6-jdk sun-java6-jre sun-java6-source

E defina como os programas padrão com:

sudo update-java-alternatives -s java-6-sun
    
por Marcos Roriz Junior 11.01.2011 / 23:34
6

O arquivo .jdk1.6.0_23.jinfo deve ser uma lista dos programas fornecidos e seus caminhos. Existe um cabeçalho descritivo seguido por uma linha em branco. Em seguida, uma lista dos programas em um formato de três campos: tipo de entrada (jre / jkd / plugin); nome do programa; e caminho. Você deve ter alguns arquivos jinfo que você pode usar para ver como deve ficar o conteúdo. Isso provavelmente é usado pelo mecanismo de alternativas para determinar quais links criar. A cabeça do meu pacote Sun é.

name=java-6-sun-1.6.0.22
alias=java-6-sun
priority=63
section=non-free

jre ControlPanel /usr/lib/jvm/java-6-sun/jre/bin/ControlPanel
jre java /usr/lib/jvm/java-6-sun/jre/bin/java
jre java_vm /usr/lib/jvm/java-6-sun/jre/bin/java_vm

Se você quiser substituir os comandos Java padrão sem usar o mecanismo de alternativas, coloque seu caminho de Java à frente de / usr / bin em seu caminho.

Ao fazer uma instalação manual, eu instalo o Java em /opt . para sua instalação eu teria instalado em /opt/jdk1.6.0_23 . Então eu coloquei o caminho $JAVA_HOME/bin no início da minha variável PATH .

EDIT: Este é o arquivo inteiro do Sun. Nota .java-6-sun.jinfo é um link simbólico para .java-6-sun-1.6.0.22.jinfo .

name=java-6-sun-1.6.0.22
alias=java-6-sun
priority=63
section=non-free

jre ControlPanel /usr/lib/jvm/java-6-sun/jre/bin/ControlPanel
jre java /usr/lib/jvm/java-6-sun/jre/bin/java
jre java_vm /usr/lib/jvm/java-6-sun/jre/bin/java_vm
jre javaws /usr/lib/jvm/java-6-sun/jre/bin/javaws
jre jcontrol /usr/lib/jvm/java-6-sun/jre/bin/jcontrol
jre keytool /usr/lib/jvm/java-6-sun/jre/bin/keytool
jre pack200 /usr/lib/jvm/java-6-sun/jre/bin/pack200
jre policytool /usr/lib/jvm/java-6-sun/jre/bin/policytool
jre rmid /usr/lib/jvm/java-6-sun/jre/bin/rmid
jre rmiregistry /usr/lib/jvm/java-6-sun/jre/bin/rmiregistry
jre unpack200 /usr/lib/jvm/java-6-sun/jre/bin/unpack200
jre orbd /usr/lib/jvm/java-6-sun/jre/bin/orbd
jre servertool /usr/lib/jvm/java-6-sun/jre/bin/servertool
jre tnameserv /usr/lib/jvm/java-6-sun/jre/bin/tnameserv
jre jexec /usr/lib/jvm/java-6-sun/jre/lib/jexec
jdk HtmlConverter /usr/lib/jvm/java-6-sun/bin/HtmlConverter
jdk appletviewer /usr/lib/jvm/java-6-sun/bin/appletviewer
jdk apt /usr/lib/jvm/java-6-sun/bin/apt
jdk extcheck /usr/lib/jvm/java-6-sun/bin/extcheck
jdk idlj /usr/lib/jvm/java-6-sun/bin/idlj
jdk jar /usr/lib/jvm/java-6-sun/bin/jar
jdk jarsigner /usr/lib/jvm/java-6-sun/bin/jarsigner
jdk javac /usr/lib/jvm/java-6-sun/bin/javac
jdk javadoc /usr/lib/jvm/java-6-sun/bin/javadoc
jdk javah /usr/lib/jvm/java-6-sun/bin/javah
jdk javap /usr/lib/jvm/java-6-sun/bin/javap
jdk jconsole /usr/lib/jvm/java-6-sun/bin/jconsole
jdk jdb /usr/lib/jvm/java-6-sun/bin/jdb
jdk jhat /usr/lib/jvm/java-6-sun/bin/jhat
jdk jinfo /usr/lib/jvm/java-6-sun/bin/jinfo
jdk jmap /usr/lib/jvm/java-6-sun/bin/jmap
jdk jps /usr/lib/jvm/java-6-sun/bin/jps
jdk jrunscript /usr/lib/jvm/java-6-sun/bin/jrunscript
jdk jsadebugd /usr/lib/jvm/java-6-sun/bin/jsadebugd
jdk jstack /usr/lib/jvm/java-6-sun/bin/jstack
jdk jstat /usr/lib/jvm/java-6-sun/bin/jstat
jdk jstatd /usr/lib/jvm/java-6-sun/bin/jstatd
jdk native2ascii /usr/lib/jvm/java-6-sun/bin/native2ascii
jdk rmic /usr/lib/jvm/java-6-sun/bin/rmic
jdk schemagen /usr/lib/jvm/java-6-sun/bin/schemagen
jdk serialver /usr/lib/jvm/java-6-sun/bin/serialver
jdk wsgen /usr/lib/jvm/java-6-sun/bin/wsgen
jdk wsimport /usr/lib/jvm/java-6-sun/bin/wsimport
jdk xjc /usr/lib/jvm/java-6-sun/bin/xjc
plugin xulrunner-1.9-javaplugin.so /usr/lib/jvm/java-6-sun/jre/lib/amd64/libnpjp2.so
plugin mozilla-javaplugin.so /usr/lib/jvm/java-6-sun/jre/lib/amd64/libnpjp2.so
    
por BillThor 13.02.2011 / 06:05
6

Exclua o openjdk e o icedtea:

apt-get purge openjdk-\* icedtea-\* icedtea6-\*

adicione o seguinte ao /etc/apt/sources.list

deb http://ppa.launchpad.net/webupd8team/java/ubuntu YOUR_UBUNTU_VERSION_HERE main

instale o Sun / Oracle JRE ou o JDK:

apt-get install oracle-jdk7-installer
apt-get install oracle-java7-installer 
    
por Fabian Zeindl 18.04.2012 / 17:20
4
  

Eu adicionei esta linha ao   arquivo / etc / environment:   JAVA_HOME="/ usr / lib / jvm / jdk1.6.0_23"   e incluiu JAVA_HOME / bin no PATH   variável, mas o SO ainda não   reconhecer o comando java, diz que é   não instalado e me oferece gcj e   openjdk.

Você conferiu?

echo $JAVA_HOME 
echo $PATH

Se você não precisar: Desinstale o openjdk e o gcj no synaptic ou com o apt-get.

apt-get remove gcj 
apt-get remove openjdk

Eu proibiria java de alternativas, e faria principalmente como BillThor sugeriu, por que eu dei a ele um upvote.

which javac
which java

deve apontar para onde você instalou o java, e onde ele é encontrado no PATH.

    
por user unknown 13.02.2011 / 08:56
3
  1. Sistema aberto- & gt; Administração- & gt; Gerenciador de Pacotes Synaptic e remova o OpenJDK completamente.
  2. Teste a versão do Java digitando java -version no shell (ele exibirá apenas o Sun java)
  3. Digite sudo update-java-alternatives -l
  4. você terminou. Agora você tem apenas o sun java instalado e é configurado como padrão jdk

e funciona somente se você tiver dois jdk instalados e quiser configurar o sun-java como um ambiente padrão

    
por Shohrat 10.09.2011 / 20:10
2

Usando o Ubuntu 10.10, parece que você precisa marcar para remoção libaccess-bridge-java primeiro no Synaptic, e então marcar openjdk-6-jre-headless.

Acabei com uma lista para ser removida:

  

ca-certificados-java, icedtea-6-jre-cacau, libaccess-bridge-java, libaccess-ponte-java-jni, openjdk-6-jre, openjdk-6-jre-sem cabeça, openjdk-6-jre -lib.

Isso funcionou, mas deixou um diretório /etc/java-6-openjdk behind com arquivos e subdiretórios variados, que isolei em um novo diretório. Não houve efeitos incomuns, então presumivelmente é apenas um resto remanescente.

Isso me deixou com o Java que eu baixei diretamente do site do Java. No entanto, apesar de ter definido como padrão e criar o link para o diretório de plugins do Firefox, ele não funcionava mais. Instalando o sun-java6-jre e seus pacotes associados gsfonts-x11, odbcinst, odbcinst1debian2, sun-java6-bin e unixodbc, via Synaptic, o plugin Java começou a funcionar novamente. Remover o link no diretório plugins e substituí-lo pelo arquivo libnpjp2.so não funcionou. O uso de um link para os arquivos libjavaplugin_oji.so nos diretórios ns7 ou ns7-gcc29 no Java instalado por meio do Synaptic também não funcionou. Isso sugere que, para obter o último plug-in Java no Firefox, é possível seguir as instruções no site Java e que o Java Linux integrado de qualquer variedade presente é necessário para executar o Java baixado, que então depende da sua operação no arquivos em torno dele uma vez que o plugin foi ativado. Embora um entendimento completo do código compreendendo Java e Linux seja necessário para realmente resolver seus mistérios, talvez esses experimentos sejam úteis para encontrar as razões pelas quais dois Java podem ser necessários neste caso. Pelo menos é possível remover todo o Java também, se alguém achar útil fazê-lo.

    
por Steve 24.06.2011 / 16:46
2

A coisa que faço em novas máquinas Ubuntu 10.10 é

  
  • adicione java-6-sun,
  •   
  • remova o openJDK (adicione sun Java primeiro, caso contrário, um monte de coisas será   removido como o tomcat, etc)
  •   

Então está tudo bem para mim, não há mais dependências do openJDK

    
por Bob Yoplait 06.05.2011 / 15:22
2

As respostas dadas a esta questão não funcionaram para mim. Ou seja, o seguinte falhou:

sudo apt-get purge sun-java5-jre sun-java6-font sun-java6-jre

Com o erro:

Virtual packages like 'sun-java6-jre' can't be removed

Tente estas instruções , em vez disso:

  1. Abra o Centro de Software do Ubuntu .
  2. Pesquise o IcedTea.
  3. Remova o plug-in IcedTea Java ( icedtea-6-jre-cacao ), se estiver instalado.
  4. Selecione o OpenJDK Java 7 Runtime.
  5. Clique em Instalar.
  6. Aguarde até que o pacote de 41,6 MB seja baixado e instalado.

O OpenJDK (IcedTea) agora está instalado, o que deve permitir que você (se tiver este erro) continue instalando o JDK do Oracle sem erros.

Veja também:

por Dave Jarvis 31.03.2013 / 06:28
1

Primeiro: remova o plugin openjdk e icedtea.

sudo apt-get remove openjdk* icedtea*

Segundo: copie o arquivo .bin jdk para / opt ou / usr / java e extraia-o.

sudo cp jdk_1.16.0.bin /usr/java

Terceiro: coloque um link do arquivo java em / usr / bin /

ln -s /usr/java/jdk_1.6.0/bin/java /usr/bin/java
ln -s /usr/java/jdk_1.6.0/bin/javac /usr/bin/javac

atualize as alternativas usando update-alternatives

Crie um link simbólico para o Java Plugin no diretório de plugins do Firefox.

Crie um link simbólico para o arquivo libnpjp2.so do Java Plugin no diretório de plug-ins do Firefox:

   cd  

<Firefox>/plugins


 ln -s  

<JRE>/lib/i386/libnpjp2.so .

Espero que isso ajude.

    
por Ubuntuser 13.02.2011 / 08:07

Tags