web-dev-qa-db-ja.com

クラスJavaLaunchHelperは... libinstrument.dylibの両方に実装されています。どちらか一方が使用されます。未定義のもの

私はMacOS Xで最新のJava 7u40にアップグレードして、入手し始めました。 Eclipseを使用してアプリケーションを起動すると、コンソールに次のメッセージが表示されます。アプリは問題なく動作しますが、問題の原因とそれに対する修正を見つけたいと思います。

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.

このメッセージが表示される理由とその修正方法を知っている人はいますか?

265
ams

B️JetBrains IntelliJ IDEAの場合:Help -> Edit Custom Properties...に移動します。ファイルを作成するように求められたら、ファイルを作成します。エラーメッセージを無効にするには、作成したファイルに以下を貼り付けます。

idea_rt
idea.no.launcher=true

これはIntelliJの再起動時に有効になります。

170
rust

2017年10月現在、この問題は現在解決されています

116
muttonUp
  1. Java 7u21を次の場所からインストールします。 http://www.Oracle.com/technetwork/Java/javase/downloads/Java-archive-downloads-javase7-521261.html#jdk-7u21-oth- JPR

  2. これらの変数を設定します。

    export Java_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home
    export PATH=$Java_HOME/bin:$PATH
    
  3. アプリを実行して楽しんでください:)

18
gotoalberto

Gotoalbertoの回答にPaste @ Lichtambergのコメントをコピーする

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 

これは私のJava 8に関する問題を修正しました。

11
Pritesh Jain

これが問題の原因であるかどうかわからないが、私はJVMモニタをインストールした後にだけこの問題を得た。

JVM Monitorをアンインストールすることで問題は解決しました。

5
paradite

他の回答の詳細として、これはJDK 7u60で修正されるJDK(最大u45)のバグです - これはまだ出ていない間、あなたはからb01をダウンロードすることができます: https:/ /jdk7.Java.net/download.html

それはベータ版ですが、私のためにその問題を修正しました。

4
Matthias Wenz

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

私がオンラインで見つけたものから、これはJDK 1.7.0_45で導入されたバグです。私はそれがJavaの次のリリースで修正されるであろうと読んだが、それはまだ出ていない。たぶん、それは1.7.0_60b01で修正されました、しかし、私はそれをどこにダウンロードするべきか見つけることができず、1.7.0_60b02はバグを再導入します。

私はどうにかしてJDK 1.7.0_25に戻ることによって問題を回避しました。おそらくあなたが望んだ解決策ではありませんが、それが私がそれを機能させることができた唯一の方法です。 JDKをインストールした後にEclipseにJDK 1.7.0_25を追加することを忘れないでください。

この電子メールには直接返信しないで、StackOverflowにアクセスしてください。 クラスJavaLaunchHelperは両方に実装されています。どちらか一方が使用されます。未定義のもの

2
Vinod Joshi

この問題を解決するために、 JDKバージョン1.7.0_21 にダウングレードしました。それから私は this little bashスクリプトを使って私が使っているバージョンを変更しました。

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ファイルにbashスクリプトが入ったら、setJdk 1.7.0_21を呼び出すだけでいいです。

1
guy.gc

さて、いくらか苦労した後、 で説明されているように 、私にとってうまくいったのは現在のJDKを完全に削除することでした。

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

それから1.7.0_21をインストールしました。 こちらからダウンロードしました

Java -versionがプロンプトを出します。

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
demogar

2019年7月

OSX Mojave 10.14.5(18F132)IntelliJ 2019-1 Community Edition idea.propertiesファイルの設定で機能しました。また、/ Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home /を指すJava_HOMEを構成しました

カスタムIntelliJ IDEAプロパティ

idea_rt idea.no.launcher = true

0
Joe V.