web-dev-qa-db-ja.com

クラスJavaLaunchHelperは2か所に実装されています

今日私はmacOS Sierraで私のIntellijアイデアをアップグレードしました、そして今、私がコンソールでアプリを実行するとき、私はこのエラーがあります:

objc [3648]:クラスJavaLaunchHelperは/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/Java(0x10d19c4c0)と/Library/Java/JavaVirtualMachines/jdk1.8.0_12の両方に実装されています。目次/ホーム/ jre/lib/libinstrument.dylib(0x10ea194e0)どちらか一方が使用されます。どれが未定義です。

257
Ess

あなたはここですべての詳細を見つけることができます:

  • IDEA-170117 "コンソールでクラスobjc:クラスJavaLaunchHelperが実装されています..."という警告

Mac上の Javaの古いバグ _が、アプリケーションの起動時にIDEによって使用されているのは、{ Javaエージェントによってトリガーされた です。このメッセージは無害で無視しても安全です。 Oracle開発者のコ​​メント:

メッセージは良性です、そのクラスの両方のコピーが(まったく同じソースからコンパイルされた)同一であるため、この問題による悪影響はありません。それは純粋に化粧品の問題です。

Java 9 および Java 8 update 152 _の 問題は解決済み

邪魔をしたり、アプリに何らかの影響を与えたりした場合(そうではありません)、IntelliJ IDEAの回避策は、idea_rtidea.no.launcher=trueに追加してidea.propertiesランチャーエージェントを無効にすることです(Help | Edit Custom Properties...)。回避策は、次回のIDEの再起動時に有効になります。

ただし、IntelliJ IDEAランチャーエージェントを無効にすることはお勧めしません。グレースフルシャットダウン(終了ボタン)、スレッドダンプ、OSの制限を超える長すぎるコマンドラインに関する問題の回避策などの機能に使用されます。無害なメッセージを隠す目的でこれらの機能を失うことは、おそらく無価値ですが、あなた次第。

432
CrazyCoder

「このメッセージは無害です」( @ CrazyCoderの答え を参照)ので、 simple および safe の回避策はIntelliJによってコンソールでこのめちゃくちゃなメッセージを折りたたむことができることですIDEAの設定

  1. 【環境設定】 - 【編集者】 - 【全般】 - 【コンソール】 - 【コンソール行を含む】
    もちろん、より効果的に移動するために、[Find Action ...](Macの場合はcmd+shift+A)を使用してFold console lines that containと入力することもできます。
  2. Class JavaLaunchHelper is implemented in bothを追加

image

私のコンピュータでは、判明しました。(LGTM:b)

image

また、メッセージを開いてもう一度確認することもできます。

image

PS:

2017年10月現在、この問題はjdk1.9/jdk1.8.152/jdk1.7.161で解決されています。
詳細については、 @ muttonUpの回答 )を参照してください。

136
oldratlee

私はIntellij Idea 2017を使用していますが、同じ問題に遭遇しました。私にとって問題を解決したのは、単純に

  1. intelliJでプロジェクトを閉じる
  2. ファイル - >新規 - >既存のリソースからのプロジェクト
  3. (もしあれば)外部モデルからのインポートを使う
  4. プロジェクトをもう一度開きます。
10
lnarasimhan

これは、Intellij IDEA 2017をインストールし、[設定] - > [ビルド]、[実行]、[展開] - > [デバッガ]の順に選択し、[JDK 1.3.x以前ではクラシックVMを強制する]オプションを無効にすると発生しました。 。これは私には効果があります。

1
Danny Guo

私は他の回避策を見つけました:プロジェクトパスからlibinstrument.dylibを除外すること。これを行うには、 設定 - > ビルド、実行、および展開 - > コンパイラ - > 除外 - > + にアクセスし、ここでファイルを追加します。エラーメッセージ内のパス。

0
gasabr

これは何年も前の私にとっては問題であり、以前は私のプロジェクトから1.7を除外することでEclipseでそれを修正していましたが、私が最近インストールしたIntelliJにとってもまた問題になりました。私はそれを修正しました:

  1. JDKのアンインストール

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

    (私はjdk1.8.0_45.jdkをインストールしました。明らかにそのフォルダにリストされているどのJavaバージョンでもアンインストールするべきです。問題のあるファイルはそのフォルダにあり、削除されるべきです。)

  2. JDK 9をダウンロードしてインストールする

次回新しいプロジェクトを作成するとき、または既存のプロジェクトを開くときは、新しいJDKインストールを指すようにプロジェクトSDKを設定する必要があります。 JavaVirtualMachinesフォルダにJDK 1.7がインストールされている場合は、このバグがまだ表示されている可能性があります。

0
Allison

同じエラー、私はJunitをアップグレードしてそれを解決します

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

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