[java] JavaLaunchHelper 클래스는 두 곳에서 구현됩니다.

오늘은 macOS Sierra에서 Intellij Idea를 업그레이드했으며 콘솔에서 응용 프로그램을 실행할 때이 오류가 발생합니다.

objc [3648] : 클래스 JavaLaunchHelper는 /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java (0x10d19c4c0) 및 /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/ 모두에서 구현됩니다. 목차 / 홈 /jre/lib/libinstrument.dylib(0x10ea194e0). 둘 중 하나가 사용됩니다. 어느 것이 정의되지 않았습니다.



답변

모든 세부 정보는 여기에서 찾을 수 있습니다.

  • IDEA-170117 “objc : 클래스 JavaLaunchHelper가 둘 다에서 구현 됨 …”경고 콘솔 실행

그것은의 자바 오래된 버그 Mac에서 자바 에이전트에 의해 트리거있어 응용 프로그램을 시작할 때 IDE에 의해 사용되는. 이 메시지는 무해하며 무시해도됩니다. 오라클 개발자의 의견 :

메시지는 양성이며, 해당 클래스의 두 사본이 동일하므로 (정확히 동일한 소스에서 컴파일 됨)이 문제점의 부정적인 영향은 없습니다. 순전히 외관상의 문제입니다.

문제가 해결됩니다자바 9 과에서 자바 8 업데이트 (152) .

짜증나거나 앱에 어떤 식 으로든 영향을 미치지 않는 경우 (그렇지 않아야 함) IntelliJ IDEA의 해결 방법은 ( | ) idea_rt에 추가 idea.no.launcher=true하여 실행기 에이전트 를 비활성화 하는 것 입니다. 해결 방법은 다음에 IDE를 다시 시작할 때 적용됩니다. idea.propertiesHelpEdit Custom Properties...

그래도 IntelliJ IDEA 런처 에이전트를 비활성화하지 않는 것이 좋습니다. 그것은 우아한 종료 (나가기 버튼), 스레드 덤프, OS 한계를 초과하는 너무 긴 명령 줄 문제와 같은 기능에 사용됩니다. 무해한 메시지를 숨기기 위해 이러한 기능을 잃어 버리는 것은 가치가 없지만 아마도 가치가 없습니다. 당신에게 달려 있습니다.


답변

“이 메시지는 무해합니다”( @CrazyCoder의 답변 참조 )이므로 간단 하고 안전한 해결 방법은 IntelliJ IDEA 설정에 의해 콘솔에서이 윙윙 거리는 메시지를 접을 수 있다는 것입니다.

  1. 【기본 설정】-【편집기】-【일반】-【콘솔】-【포함 된 콘솔 콘솔】
    물론, [Find Action …] ( cmd+shift+AMac의 경우) Fold console lines that contain을 사용하고보다 효과적으로 탐색 할 수 있습니다.
  2. 더하다 Class JavaLaunchHelper is implemented in both

영상

내 컴퓨터에서 밝혀졌습니다 : (LGTM : b)

영상

메시지를 펼쳐서 다시 확인할 수 있습니다.

영상

추신:

2017 년 10 월 기준으로이 문제는 이제 jdk1.9 / jdk1.8.152 / jdk1.7.161에서 해결되었습니다.
자세한 내용 은 @muttonUp의 답변 참조 )


답변

Intellij Idea 2017을 사용하고 있으며 같은 문제가 발생했습니다. 나를 위해 문제를 해결 한 것은 단순히

  1. intelliJ에서 프로젝트를 닫습니다
  2. 기존 자원의 파일-> 새로 작성-> 프로젝트
  3. 외부 모델에서 가져 오기 사용 (있는 경우)
  4. 프로젝트를 다시여십시오.

답변

Intellij IDEA 2017을 설치하고 환경 설정-> 빌드, 실행, 배포-> 디버거 메뉴로 이동하여 “JDK 1.3.x 및 이전 버전 용 Force Classic VM”옵션을 비활성화했습니다. 이것은 나에게 효과적입니다.


답변

다른 해결 방법을 찾았습니다 : libinstrument.dylib프로젝트 경로에서 제외하십시오 . 이를 수행하려면 환경 설정 -> 빌드, 실행 및 배치 -> 컴파일러 -> 제외 -> + 로 이동하여 오류 메시지의 경로로 파일을 추가하십시오.


답변

이것은 몇 년 전의 문제였으며 이전에 프로젝트에서 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이 설치되어있는 경우에도 여전히이 버그가 표시되거나 버그가 발생할 수 있습니다.


답변

같은 오류로 업그레이드 Junit하고 해결했습니다.

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

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