A classe JavaLaunchHelper é implementada em… libinstrument.dylib. Um dos dois será usado. Qual é indefinido

274

Atualizei para o Java 7u40 mais recente no MacOS X e comecei a receber a seguinte mensagem no console ao iniciar meu aplicativo usando o Eclipse. O aplicativo funciona bem, mas eu gostaria de descobrir a causa do problema e, espero, uma correção para ele.

objc[10012]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.

Alguém sabe por que essa mensagem é impressa e como corrigi-la?

ams
fonte
3
Embora isso possa ser uma opção viável para solucionar esse tipo específico de problema - isso pode torná-lo vulnerável a vazamentos de segurança corrigidos no u45 e além.
Matthias Wenz 26/01
5
A mesma coisa está acontecendo com jdk1.8.0_05
neu242
28
Um ano se passou e o bug ainda está incomodando todos os desenvolvedores Java que usam um Mac (verificado com jdk1.7.0_67 no OS X 10.9.3). Vergonhoso. Alguém com o login apropriado pode reabrir esses bugs bugs.java.com/bugdatabase/view_bug.do?bug_id=8021205 e bugs.openjdk.java.net/browse/JDK-8025876
Tobia
8
O bug ainda existe para o jdk1.8.0_25. Esta é apenas uma mensagem irritante ou um problema real?
quer
7
Um relatório de bug desse problema sugere que uma correção pode ser incluída na versão do JDK9. O mesmo relatório de bug diz o seguinte: "Para aqueles que continuam perguntando sobre isso: 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). questão cosmética ".
Jordânia

Respostas:

176

Jet️ Para JetBrains IntelliJ IDEA : Vá para Help -> Edit Custom Properties.... Crie o arquivo se ele solicitar que você o crie. Para desativar a mensagem de erro, cole o seguinte no arquivo que você criou:

idea_rt
idea.no.launcher=true

Isso entrará em vigor na reinicialização do IntelliJ.

Estou no Eclipse IDE Versão: Photon Release (4.8.0) ID da compilação: 20180619-1200 executando o macOS 10.14.6 (Mojave). Eu adicionei a linha idea.no.launcher=trueem <install location>/eclipse/configuration/config.inie isso resolveu o problema para mim.

ferrugem
fonte
9
Trabalhou para mim sem fazer mais nada. Isso deve ser marcado como correto.
Trishulpani 10/10
7
Trabalhei para mim no IDEA 2017.1.3 OSX 10.12.5 JRE 1.8
Daniel Rucci
2
O OP estava usando o Eclipse, não o IntelliJ. Então, você está dando a eles instruções para modificar as configurações no editor errado (portanto, não está marcado como correto).
Allison
2
Concordo com @Allison - se essa resposta incluísse um meio para o Eclipse, seria excelente. Mas respondendo pelo IDE errado?
Daniel Soutar
1
Trabalhou para o IntelliJ 2018.3.3 CE, SDKMAN 5.7.3 + 337 e versão do OpenJDK "1.8.0_131" (Zulu 8.21.0.1-macosx).
David Lukac
117

Em outubro de 2017, esse problema foi resolvido no

muttonUp
fonte
4
Acabei de instalar a versão java "1.8.0_144" e enfrentei o problema.
Reihan_amn 29/08
2
@Reihan_amn quiser, até construir 152
muttonUp
1
Eu tive problemas com o jdk1.8.65, mas o jdk1.8.152 corrigiu esse problema. Graças
Anshul
20
  1. Instale o Java 7u21 em: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR

  2. Defina estas variáveis:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
  3. Execute seu aplicativo e divirta-se :)

gotoalberto
fonte
3
Funciona também para 1.8.0_92: # na exportação .zshrc ou .bashrc JAVA_HOME = / Biblioteca / Java / JavaVirtualMachines / jdk1.8.0_92.jdk / Conteúdo / Página inicial de exportação PATH = $ JAVA_HOME / bin: $ PATH
BvuRVKyUVlViVIc7
@Lichtamberg graças a isso corrigi meus problemas no Java 8 mac osx. Adicionei seu comentário como resposta, pois quase todas as outras respostas funcionam, mas agora são absolutas.
Pritesh Jain
1
@gotoalberto Como essa variável de ambiente resolverá o problema quando a implementação do JavaLaunchHelper residir no diretório Home?
Prashant
1
@Lichtamberg Estou usando o sonar runner para começar a avaliar a cobertura do código do meu aplicativo. Ainda estou tendo o mesmo problema com a versão mencionada acima. embora eu tentei muitas versões 8 com seus patches no meu Mac OS. Sem sorte.
Sathish
NÃO FAÇA ISSO. Java 7u21 (além de ser lançado em 2013 e, assim, ter faltado para fora em quatro anos de manchas grandes e pequenas) tem uma vulnerabilidade de execução de código arbitrário: gist.github.com/frohoff/24af7913611f8406eaf3
mseebach
11

Copie os comentários de Pasting @ Lichtamberg para a resposta de gotoalberto

Funciona também para Java 1.8:

# in ~/.zshrc and ~/.bashrc

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home 
export PATH=$JAVA_HOME/bin:$PATH 

Isso corrigiu meu problema no java 8.

Pritesh Jain
fonte
4
Ainda enfrentando o problema no Android Studio (2.2p3) depois de editar ~ / .zshrc e ~ / .bashrc
Mic Fok
não funciona para intellij, existe um próximo passo após criar / editar esses arquivos?
Xpto
5

Não tenho certeza se essa é a causa do problema, mas só consegui esse problema depois de instalar o JVM Monitor .

A desinstalação do JVM Monitor resolveu o problema para mim.

paradítico
fonte
O mesmo aqui, o JVM Monitor for Eclipse estava causando a mensagem (JBoss 7.1, JDK 1.8.0.X).
psychowood
Tudo começou para mim quando eu instalei eclEmma do plugin no eclipse
Nooblhu
Mesmo problema aqui. Monitor de Uninstalled JVM e mostra isso já não se
Zhiya
4

Como outras respostas detalham, esse é um bug no JDK (até u45) que será corrigido no JDK7u60 - enquanto isso ainda não estiver disponível, você pode baixar o b01 em: https://jdk7.java.net/download. html

É beta, mas corrigi esse problema para mim.

Matthias Wenz
fonte
11
Instalei o u60, mas ainda recebo a classe JavaLaunchHelper implementada em /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin/java e /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/ Página inicial / jre / lib / libinstrument.dylib. Um dos dois será usado. Qual é indefinido.
precisa
Parece que foi re-introduzido entre b01 e b02
npskirk
2
Alguma referência ao bug? URL?
Binarytemple_picsolve
3
Na verdade, ainda não está consertado. Eles apoiaram a correção fora do U60
Zanson
2

https://groups.google.com/forum/#!topic/google-appengine-stackoverflow/QZGJg2tlfA4

Pelo que encontrei on-line, esse é um bug introduzido no JDK 1.7.0_45. Eu li que será corrigido na próxima versão do Java, mas ainda não foi lançado. Supostamente, foi corrigido no 1.7.0_60b01, mas não consigo encontrar onde fazer o download e o 1.7.0_60b02 reintroduz o bug.

Consegui solucionar o problema revertendo para o JDK 1.7.0_25. Provavelmente não é a solução que você queria, mas é a única maneira de fazê-la funcionar. Não se esqueça de adicionar o JDK 1.7.0_25 no Eclipse depois de instalar o JDK.

NÃO responda diretamente a este email, mas acesse StackOverflow: a classe JavaLaunchHelper é implementada em ambos. Um dos dois será usado. Qual é indefinido

Vinod Joshi
fonte
1

Para resolver esse problema, fiz o downgrade para o JDK versão 1.7.0_21 . então eu usei esse pequeno script bash para alterar a versão que eu uso.

function setjdk() {
  if [ $# -ne 0 ]; then
   removeFromPath '/System/Library/Frameworks/JavaVM.framework/Home/bin'
   if [ -n "${JAVA_HOME+x}" ]; then
    removeFromPath $JAVA_HOME
   fi
   export JAVA_HOME=`/usr/libexec/java_home -v $@`
   export PATH=$JAVA_HOME/bin:$PATH
  fi
 }

 function removeFromPath() {
  export PATH=$(echo $PATH | sed -E -e "s;:$1;;" -e "s;$1:?;;")
 }

Depois de ter o script bash no seu arquivo zshrc / bshrc, basta ligar setJdk 1.7.0_21e pronto .

guy.gc
fonte
0

Bem, depois de algumas dificuldades, o que funcionou para mim foi remover completamente o JDK atual, conforme descrito aqui :

sudo rm -rf /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/LaunchAgents/com.oracle.java.Java-Updater.plist
sudo rm -rf /Library/PrivilegedHelperTools/com.oracle.java.JavaUpdateHelper
sudo rm -rf /Library/LaunchDaemons/com.oracle.java.JavaUpdateHelper.plist
sudo rm -rf /Library/Preferences/com.oracle.java.Helper-Tool.plist

Em seguida, instalou o 1.7.0_21, que foi baixado aqui .

Agora java -versionsolicita:

java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b12)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
demogar
fonte
0

Julho 2019

OSX Mojave 10.14.5 (18F132) IntelliJ 2019-1 Community Edition. Funcionou configurando o arquivo idea.properties. Também configurei JAVA_HOME apontando para /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/

propriedades personalizadas do IntelliJ IDEA

idea_rt idea.no.launcher = true

Joe V.
fonte
-2

Se você estiver usando IntelliJ e Mac, vá para Estrutura do projeto -> SDK e verifique se há Java listado, mas ele aponta para sth como

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

Em vez de em casa do usuário ...

kboom
fonte
-3

O jdk-7u80-macosx-x64.dmg corrige esse problema.

wyxiloveu
fonte