Sınıf JavaLaunchHelper her ikisi de… libinstrument.dylib içinde uygulanır. İkisinden biri kullanılacak. Hangisi tanımsız


274

MacOS X üzerinde en son Java 7u40 sürümüne geçtim ve Eclipse kullanarak uygulamamı başlatırken konsolda aşağıdaki mesajı almaya başladım. Uygulama iyi çalışıyor, ancak sorunun nedenini ve umarım bunun için bir düzeltme bulmak istiyorum.

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.

Bu iletinin neden yazdırıldığını ve nasıl düzeltileceğini bilen var mı?


3
Bu, bu tür bir sorunu çözmek için uygun bir seçenek olsa da, bu sizi u45 ve ötesinde sabitlenen güvenlik sızıntılarına karşı savunmasız bırakabilir.
Matthias Wenz

5
Aynı şey jdk1.8.0_05 ile
neu242

28
Bir yıl geçti ve hata hala Mac kullanan her Java geliştiricisini (OS X 10.9.3'te jdk1.7.0_67 ile doğrulandı) rahatsız ediyor. Utanç verici. Uygun giriş yapan herkes bu hataları tekrar açabilir mi? Bugs.java.com/bugdatabase/view_bug.do?bug_id=8021205 ve bugs.openjdk.java.net/browse/JDK-8025876
Tobia

8
Jdk1.8.0_25 için hala hata var. Bu sadece bir mesaj mı yoksa gerçek bir sorun mu?
Churk

7
Bu sorunla ilgili bir hata raporu , JDK9 sürümüne bir düzeltme eklenebileceğini göstermektedir. Aynı hata raporu şunları söylüyor: "Bunu sormaya devam edenler için: Mesaj iyi huylu, bu sorunun olumsuz bir etkisi yoktur, çünkü o sınıfın her iki kopyası da aynıdır (tam olarak aynı kaynaktan derlenmiştir). kozmetik sorunu. "
Ürdün

Yanıtlar:


176

B️ JetBrains IntelliJ IDEA için : adresine gidin Help -> Edit Custom Properties.... Oluşturmanızı isterse dosyayı oluşturun. Hata mesajını devre dışı bırakmak için aşağıdakileri oluşturduğunuz dosyaya yapıştırın:

idea_rt
idea.no.launcher=true

Bu, IntelliJ'in yeniden başlatılmasında etkili olacaktır.

Eclipse IDE Sürümündeyim: Photon Release (4.8.0) Derleme ID: 20180619-1200 macOS 10.14.6 (Mojave) çalıştıran. Çizgiyi eklendi idea.no.launcher=trueiçine <install location>/eclipse/configuration/config.inive bu benim için sorunu çözmüştür.


9
Başka bir şey yapmadan benim için çalıştı. Bu doğru olarak işaretlenmelidir.
trishulpani

7
IDEA 2017.1.3 benim için çalıştı OSX 10.12.5 JRE 1.8
Daniel Rucci

2
OP, IntelliJ yerine Eclipse kullanıyordu. Bu nedenle, ayarları yanlış düzenleyicide değiştirmek için talimatlar veriyorsunuz (bu nedenle doğru olarak işaretlenmiyor).
Allison

2
@Allison ile hemfikirim - eğer bu cevap Eclipse için bir araç içeriyorsa mükemmel olurdu. Peki yanlış IDE'ye cevap vermek?
Daniel Soutar

1
IntelliJ 2018.3.3 CE, SDKMAN 5.7.3 + 337 ve OpenJDK sürümü "1.8.0_131" (Zulu 8.21.0.1-macosx) için çalıştı.
David Lukac


20
  1. Java 7u21'i şu adresten yükleyin: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u21-oth-JPR

  2. Bu değişkenleri ayarlayın:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
  3. Uygulamanızı çalıştırın ve eğlenin :)


3
1.8.0_92 için de çalışır: # .zshrc veya .bashrc dışa aktarma JAVA_HOME = / Kütüphane / Java / JavaVirtualMachines / jdk1.8.0_92.jdk / İçindekiler / Ev dışa aktarma PATH = $ JAVA_HOME / bin: $ PATH
BvuRVKyUVlViVIc7

@Lichtamberg teşekkürler bu Java 8 mac osx sorunlarımı giderdi. Hemen hemen tüm diğer cevaplar çalıştığından yorumunuzu yanıt olarak ekledim, ancak şimdi mutlak.
Pritesh Jain

1
@gotoalberto JavaLaunchHelper uygulamasının her ikisi de Home dizininde olduğunda bu ortam değişkeni sorunu nasıl çözer?
Prashant

1
@Lichtamberg Uygulamamın kod kapsamını değerlendirmeye başlamak için sonar koşucusu kullanıyorum. Yukarıda bahsettiğiniz sürümle de aynı sorunu alıyorum. benim mac os yamaları ile birçok 8 sürümünü denedim rağmen. Şanssız.
Sathish

BUNU YAPMA. Java 7u21 (2013'te piyasaya sürülmesinin ve böylece büyük ve küçük dört yıllık yamaları kaçırmanın yanı sıra) keyfi bir kod yürütme güvenlik açığı vardır: gist.github.com/frohoff/24af7913611f8406eaf3
mseebach

11

Pasting @ Lichtamberg adlı kullanıcının yorumları gotoalberto's answer

Java 1.8 için de çalışır:

# in ~/.zshrc and ~/.bashrc

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

Bu, java 8'deki sorunumu düzeltti.


4
~ / .Zshrc ve ~ / .bashrc
Mic Fok

intellij için çalışmıyor, bu dosyaları oluşturduktan / düzenledikten sonra bir sonraki adım var mı?
xpto

5

Sorunun nedeninin bu olduğundan emin değilim, ancak bu sorunu sadece JVM Monitor'ü yükledikten sonra aldım .

JVM Monitor'ün kaldırılması sorunu benim için çözdü.


Aynı şekilde, Eclipse için JVM Monitor iletiye neden oluyordu (JBoss 7.1, JDK 1.8.0.X).
psychowood

Eclipse eclEmma eklentisini yüklediğimde benim için başladı
Nooblhu

Burada da aynı problem.
Yüklü

4

Diğer cevapların detayı gibi, bu JDK'da (u45'e kadar) bir hata. https://jdk7.java.net/download. html

Bu beta, ama bu sorunu benim için düzeltti.


11
U60 yükledim ama yine de JavaLaunchHelper Sınıfı /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home/bin/java ve /Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/ Ev / jre / lib / libinstrument.dylib. İkisinden biri kullanılacak. Hangisi tanımsız.
Rich Sadowsky

b01 ve b02 arasında yeniden tanıtıldı
npskirk

2
Hata için herhangi bir referans var mı? URL?
binarytemple_picsolve

3
Aslında hala sabit değil. U60'ın düzeltmesini desteklediler
Zanson

2

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

Çevrimiçi bulduğumdan, bu bir hata JDK 1.7.0_45'te tanıtılan . Java'nın bir sonraki sürümünde düzeltileceğini okudum, ama henüz çıkmadı. Güya, 1.7.0_60b01'de düzeltildi, ancak nereden indirileceğini bulamıyorum ve 1.7.0_60b02 hatayı yeniden tanıtıyor.

JDK 1.7.0_25'e geri dönerek sorunu çözmeyi başardım. Muhtemelen istediğiniz çözüm değil, ama çalıştırabilmemin tek yolu bu. JDK'yı yükledikten sonra Eclipse'e JDK 1.7.0_25 eklemeyi unutmayın.

Lütfen doğrudan bu e-postaya YANIT ETMEYİN, ancak StackOverflow'a gidin: Sınıf JavaLaunchHelper her ikisinde de uygulanır. İkisinden biri kullanılacak. Hangisi tanımsız


1

Bu sorunu çözmek için JDK 1.7.0_21 sürümüne geçtim . kullandığım sürümü değiştirmek için bu küçük bash betiğini kullandım.

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:?;;")
 }

Zshrc / bshrc dosyanızda bash betiğini aldıktan sonra, arayın setJdk 1.7.0_21ve hazırsınız.


0

Biraz uğraştıktan sonra, benim için işe yarayan, burada anlatıldığı gibi mevcut JDK'yı tamamen kaldırmaktı :

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

Daha sonra buradan indirilen 1.7.0_21 yüklendi .

Şimdi java -versionsoruyor:

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

Temmuz 2019

OSX Mojave 10.14.5 (18F132) IntelliJ 2019-1 Topluluk Sürümü. İdea.properties dosyasını ayarlamaya çalıştı. Ayrıca JAVA_HOME'u /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/

özel IntelliJ IDEA özellikleri

idea_rt idea.no.launcher = true


-2

IntelliJ & Mac kullanıyorsanız Project yapısı -> SDK'ya gidin ve Java'nın listelendiğinden emin olun, ancak sth

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

Kullanıcı evinden ziyade ...


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.