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?


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.


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


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 :)


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.


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.


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.


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


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 .


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)

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


-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 ...


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.