Lớp JavaLaunchHelper được triển khai ở hai nơi


291

Hôm nay tôi đã nâng cấp Ý tưởng Intellij của mình trên macOS Sierra và bây giờ, khi tôi chạy các ứng dụng trong bảng điều khiển, tôi gặp lỗi này:

chướng ngại vật Nội dung / Trang chủ / jre / lib / libinstrument.dylib (0x10ea194e0). Một trong hai người sẽ được sử dụng. Cái nào không xác định.

Câu trả lời:


476

Bạn có thể tìm thấy tất cả các chi tiết ở đây:

  • IDEA-170117 "objc: Class JavaLaunchHelper được triển khai trong cả hai ..." cảnh báo trong bảng điều khiển Run

Đó là lỗi cũ trong Java trên Mac đã được kích hoạt bởi Tác nhân Java đang được IDE sử dụng khi khởi động ứng dụng. Thông điệp này là vô hại và an toàn để bỏ qua. Nhận xét của nhà phát triển Oracle:

Thông điệp là lành tính, không có tác động tiêu cực từ vấn đề này vì cả hai bản sao của lớp đó là giống hệt nhau (được tổng hợp từ cùng một nguồn chính xác). Nó hoàn toàn là một vấn đề thẩm mỹ.

Sự cố được khắc phục trong Java 9 và trong bản cập nhật Java 8 152 .

Nếu điều đó làm bạn khó chịu hoặc ảnh hưởng đến các ứng dụng của bạn theo bất kỳ cách nào (không nên), cách giải quyết cho IntelliJ IDEA là vô hiệu hóa idea_rttác nhân trình khởi chạy bằng cách thêm idea.no.launcher=truevào idea.properties( Help| Edit Custom Properties...). Giải pháp thay thế sẽ có hiệu lực trong lần khởi động lại tiếp theo của IDE.

Tuy nhiên, tôi không khuyên bạn nên vô hiệu hóa trình khởi chạy IntelliJ IDEA. Nó được sử dụng cho các tính năng như tắt máy duyên dáng (nút Thoát), xử lý luồng, xử lý sự cố với dòng lệnh quá dài vượt quá giới hạn hệ điều hành, v.v. Mất các tính năng này chỉ vì ẩn thông điệp vô hại có lẽ không đáng, nhưng nó tùy bạn


6
Idea_rt làm gì? Bất kỳ lý do để không vô hiệu hóa nó?
TTT

8
Nó cung cấp lối thoát duyên dáng, kết xuất luồng, xử lý đường dẫn lớp dài có thể vượt quá giới hạn hệ điều hành, v.v. Tôi sẽ không vô hiệu hóa nó, đặc biệt chỉ vì lý do ẩn một tin nhắn vô hại.
CrazyCoder

16
Tôi đã cài đặt bản cập nhật Java 8 152 và nó giải quyết vấn đề như trong câu trả lời. Cảm ơn bạn.
David Victor

3
Khi nào 152 sẽ được đẩy qua orory java se?
Yogesh

1
Đã cài đặt IntelliJ CE 2018.2, chạy bản cập nhật Java 8 191: thông báo vẫn còn đó.
Massimiliano Kraus

180

Vì tin nhắn này là vô hại (xem câu trả lời của @ CrazyCoder's ), một cách giải quyết đơn giảnan toàn là bạn có thể gấp tin nhắn ù này trong bảng điều khiển bằng cài đặt IntelliJ IDEA:

  1. 【Tùy chọn】 - 【Trình biên tập】 - 【Chung】 - 【Bảng điều khiển】 - 【Gấp các dòng bàn điều khiển có chứa】
    Tất nhiên, bạn có thể sử dụng 【Tìm hành động ...】 ( cmd+shift+Atrên mac) và nhập Fold console lines that containđể điều hướng hiệu quả hơn.
  2. thêm vào Class JavaLaunchHelper is implemented in both

hình ảnh

Trên máy tính của tôi, hóa ra: (LGTM: b)

hình ảnh

Và bạn có thể mở tin nhắn để kiểm tra lại:

hình ảnh

Tái bút

Kể từ tháng 10 năm 2017, vấn đề này hiện đã được giải quyết trong jdk1.9 / jdk1.8.152 / jdk1.7.161
để biết thêm thông tin, xem câu trả lời của @ muttonUp )


13

Tôi đang sử dụng Intellij Idea 2017 và tôi gặp vấn đề tương tự. Điều giải quyết vấn đề cho tôi chỉ đơn giản là

  1. đóng dự án trong intelliJ
  2. Tệp -> Mới -> dự án từ các tài nguyên hiện có
  3. sử dụng Nhập từ mô hình bên ngoài (nếu có)
  4. mở lại dự án.

5
close then opengiải pháp cổ điển =))
Khoa

Tôi đã thử mọi giải pháp được cung cấp dưới dạng câu trả lời ở đây, nhưng chỉ có giải pháp này hiệu quả với tôi. Tôi đề nghị xóa .ideathư mục trước khi nhập lại.
Rishabh

Điều này không hoạt động với tôi trong IDEA 2017.3.1 trên macOS Sierra chạy bản cập nhật Java 8 151. Tuy nhiên, việc nâng cấp lên 152 đã sửa nó sau khi khởi động lại IDEA và thiết lập dự án của tôi để sử dụng bản cập nhật 152.
akubot 17/12/17

1

Điều này đã xảy ra với tôi khi tôi cài đặt Intellij IDEA 2017, vào menu Tùy chọn -> Xây dựng, Thực thi, Triển khai -> Trình gỡ lỗi và vô hiệu hóa tùy chọn: "Buộc cổ điển VM cho JDK 1.3.x trở về trước". Điều này làm việc với tôi.


2
Bạn cũng có thể cần phải vô hiệu hóa tác nhân launcher idea_rt như CrazyCoder đã đề cập. thêm ý tưởng.no.launcher = true vào idea.properies (Trợ giúp | Chỉnh sửa thuộc tính tùy chỉnh ...). Hãy chắc chắn khởi động lại IDE sau này.
Danny Guo

Có, cách giải quyết thuộc tính tùy chỉnh không hoạt động, đề xuất của bạn không làm gì trên hệ thống của tôi. Bạn đã thử câu trả lời của mình tức là chuyển đổi cài đặt - Tôi không thấy tùy chọn JDK 1.3.x trước có thể có tác dụng như thế nào? Tôi đang ở trên Java 8.
David Victor

Đối với tôi, tôi đã thử tài sản tùy chỉnh lúc đầu, nó không hoạt động đối với tôi. sau đó tôi tìm thấy giải pháp JDK1.3.x vô hiệu hóa này. Sau khi khởi động lại IDE, mọi thứ đều hoạt động tốt.
Danny Guo

1
@DannyGuo do sự cố xảy ra do bất kỳ tác nhân Java nào và trong chế độ gỡ lỗi, dù sao thì tác nhân Java cũng được sử dụng cho các JVM hiện đại, điều này đã khắc phục sự cố cho bạn trong chế độ Gỡ lỗi, nhưng bạn sẽ gặp sự cố trong chế độ Chạy khi tác nhân khởi chạy là kích hoạt.
CrazyCoder

0

Tôi đã tìm thấy cách giải quyết khác: để loại trừ libinstrument.dylibkhỏi đường dẫn dự án. Để làm như vậy, hãy đi tới Tùy chọn -> Xây dựng, Thực thi và Triển khai -> Trình biên dịch -> Loại trừ -> + và ở đây thêm tệp theo đường dẫn trong thông báo lỗi.


0

Đây là một vấn đề đối với tôi nhiều năm trước và trước đây tôi đã sửa nó trong Eclipse bằng cách loại trừ 1.7 khỏi các dự án của tôi, nhưng nó lại trở thành một vấn đề đối với IntelliJ, mà tôi đã cài đặt gần đây. Tôi đã sửa nó bằng cách:

  1. Gỡ cài đặt JDK:

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

    (Tôi đã jdk1.8.0_45.jdkcài đặt; rõ ràng bạn nên gỡ cài đặt bất kỳ phiên bản java nào được liệt kê trong thư mục đó. Các tệp vi phạm được đặt trong thư mục đó và sẽ bị xóa.)

  2. Tải xuống và cài đặt JDK 9 .

Lưu ý rằng lần tới khi bạn tạo dự án mới hoặc mở dự án hiện có, bạn sẽ cần đặt SDK dự án để trỏ đến bản cài đặt JDK mới. Bạn cũng có thể vẫn gặp lỗi này hoặc đã sửa lại nếu bạn đã cài đặt JDK 1.7 trong thư mục JavaVirtualMachines của bạn (đó là những gì tôi tin đã xảy ra với tôi).


0

Cùng một lỗi, tôi nâng cấp Junitvà giải quyết nó

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

đến

org.junit.jupiter:junit-jupiter-api:5.0.0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.