A classe JavaLaunchHelper é implementada em dois locais

291

Hoje atualizei minha Idea Intellij no macOS Sierra e, agora, quando executo aplicativos no console, tenho este erro:

objc [3648]: A classe JavaLaunchHelper é implementada em /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) e /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk Conteúdo / Home / jre / lib / libinstrument.dylib (0x10ea194e0). Um dos dois será usado. Qual é indefinido.

Ess
fonte

Respostas:

476

Você pode encontrar todos os detalhes aqui:

  • IDEA-170117 "objc: A classe JavaLaunchHelper é implementada nos dois ..." aviso em Executar consoles

É o bug antigo no Java no Mac que foi acionado pelo Java Agent que está sendo usado pelo IDE ao iniciar o aplicativo. Esta mensagem é inofensiva e pode ser ignorada com segurança. Comentário do desenvolvedor Oracle:

A mensagem é benigna, não há impacto negativo desse problema, pois as duas cópias dessa classe são idênticas (compiladas da mesma fonte). É uma questão puramente cosmética.

O problema foi corrigido no Java 9 e na atualização 152 do Java 8 .

Se isso o incomoda ou afeta seus aplicativos de alguma forma (não deveria), a solução alternativa para o IntelliJ IDEA é desativar o idea_rtagente do iniciador adicionando idea.no.launcher=trueem idea.properties( Help| Edit Custom Properties...). A solução alternativa terá efeito na próxima reinicialização do IDE.

Porém, eu não recomendo desativar o agente iniciador do IntelliJ IDEA. É usado para recursos como desligamento normal (botão Sair), despejos de encadeamento, soluções alternativas, um problema com uma linha de comando muito longa que excede os limites do sistema operacional, etc. Perder esses recursos apenas para ocultar a mensagem inofensiva provavelmente não vale a pena, mas vale a pena, mas vale a pena. você decide.

CrazyCoder
fonte
6
O que o idea_rt faz? Alguma razão para não desativá-lo?
TTT
8
Ele fornece saída simples, despejos de encadeamento, lida com um longo caminho de classe que pode exceder os limites do SO, etc. Eu não o desabilitaria, principalmente pelo motivo de ocultar uma mensagem inofensiva.
CrazyCoder
16
Eu instalei o Java 8, atualização 152, e ele resolve o problema como na resposta. Obrigado.
David Victor
3
Quando o 152 será empurrado pelo oracle java se?
Yogesh
1
Instalado o IntelliJ CE 2018.2, executando o Java 8, atualização 191: a mensagem ainda está lá.
Massimiliano Kraus 30/10
180

Como “esta mensagem é inofensiva” (consulte a resposta do @ CrazyCoder ), uma solução simples e segura é que você pode dobrar essa mensagem movimentada no console pelas configurações do IntelliJ IDEA:

  1. 【Preferências】 - 【Editor】 - 【Geral】 - 【Console】 - 【Dobre as linhas do console que contêm】
    Obviamente, você pode usar 【Encontrar Ação ...】 ( cmd+shift+Ano mac) e digitar Fold console lines that containpara navegar com mais eficiência.
  2. adicionar Class JavaLaunchHelper is implemented in both

imagem

No meu computador, verifica-se: (LGTM: b)

imagem

E você pode desdobrar a mensagem para verificá-la novamente:

imagem

PS:

A partir de outubro de 2017, esse problema foi resolvido no jdk1.9 / jdk1.8.152 / jdk1.7.161
para obter mais informações, consulte a resposta do @ muttonUp )

oldratlee
fonte
13

Estou usando o Intellij Idea 2017 e entrei no mesmo problema. O que resolveu o problema para mim foi simplesmente

  1. fechar o projeto em intelliJ
  2. Arquivo -> Novo -> projeto a partir dos recursos existentes
  3. use Importar do modelo externo (se houver)
  4. abra o projeto novamente.
lnarasimhan
fonte
5
a close then opensolução clássica =))
Khoa 12/09
Tentei todas as soluções fornecidas como respostas aqui, mas apenas essa solução funcionou para mim. Sugiro excluir a .ideapasta antes de reimportar.
Rishabh
Isto não funcionou para mim no IDEA 2017/03/01 no MacOS Sierra executando o Java 8 atualização 151. No entanto atualizar para 152 fixa-lo depois de reiniciar IDEA e definir o meu projeto para atualização utilização 152.
akubot
1

Isso aconteceu comigo quando eu instalei o Intellij IDEA 2017, vá para o menu Preferências -> Compilação, Execução, Implantação -> Depurador e desative a opção: "Force Classic VM para JDK 1.3.xe versões anteriores". Isso funciona para mim.

Danny Guo
fonte
2
Você também pode precisar desativar o agente do iniciador do idea_rt, como o CrazyCoder mencionou. adicionando idea.no.launcher = true em idea.properties (Ajuda | Editar propriedades personalizadas ...). Certifique-se de reiniciar o IDE depois disso.
Danny Guo
Sim, a solução alternativa da propriedade customizada funciona, sua sugestão não faz nada no meu sistema. Você já tentou sua resposta, ou seja, alterna a configuração - não vejo como uma opção anterior ao JDK 1.3.x pode ter algum efeito? Estou no Java 8.
David Victor
Para mim, tentei propriedades personalizadas no início, não está funcionando para mim. então encontrei esta solução JDK1.3.x desativada. depois de reiniciar o IDE, tudo funciona bem.
Danny Guo
1
@DannyGuo, como o problema é causado por qualquer agente Java e, no modo de depuração, o agente Java é usado de qualquer maneira para JVMs modernas; isso corrigiu o problema apenas no modo de Depuração, mas você terá o problema no modo de Execução quando o agente do iniciador for ativado.
CrazyCoder
0

Eu encontrei a outra solução alternativa: excluir libinstrument.dylibdo caminho do projeto. Para fazer isso, vá para Preferências -> Compilação, Execução e Implantação -> Compilador -> Exclui -> + e adicione aqui o arquivo pelo caminho na mensagem de erro.

gasabr
fonte
0

Isso foi um problema para mim anos atrás e eu o havia corrigido anteriormente no Eclipse excluindo 1,7 dos meus projetos, mas tornou-se um problema novamente para o IntelliJ, que eu instalei recentemente. Eu o corrigi por:

  1. Desinstalando o JDK:

    cd /Library/Java/JavaVirtualMachines
    sudo rm -rf jdk1.8.0_45.jdk

    (Eu tinha jdk1.8.0_45.jdkinstalado; obviamente você deve desinstalar a versão java que estiver listada nessa pasta. Os arquivos incorretos estão localizados nessa pasta e devem ser excluídos.)

  2. Fazendo Download e Instalando o JDK 9 .

Observe que na próxima vez que você criar um novo projeto ou abrir um projeto existente, será necessário configurar o SDK do projeto para apontar para a nova instalação do JDK. Você também pode ainda ver esse bug ou voltar a arrastá-lo se o JDK 1.7 estiver instalado na pasta JavaVirtualMachines (que é o que eu acredito que aconteceu comigo).

Allison
fonte
0

Mesmo erro, atualizo Junite resolvo

org.junit.jupiter:junit-jupiter-api:5.0.0-M6

para

org.junit.jupiter:junit-jupiter-api:5.0.0
Q.Lee
fonte