Lỗi Maven: Không thể tìm thấy hoặc tải lớp chính org.codehaus.plexus. Classworlds.launcher.Launcher


136

Tôi đã cài đặt mới nhất maven-3.0.4trên Windows 7 :
Chi tiết cài đặt như sau:
Đường dẫn cài đặt:

C:\apache-maven-3.0.4  

Biến môi trường là:

M2_HOME C:\apache-maven-3.0.4\apache-maven\src  
JAVA_HOME C:\Program Files\Java\jdk-1.7.0_04  

Các biến đường dẫn được thêm vào là:

%M2_HOME%\bin;%JAVA_HOME%\bin;

Trong cửa sổ lệnh, nó hiển thị như thế này:

C:\>java -version  
java version "1.7.0_04"  
Java(TM) SE Runtime Environment (build 1.7.0_04-b22)  
Java HotSpot(TM) Client VM (build 23.0-b21, mixed mode, sharing)  
C:\>mvn -version  
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher  

Đây là phiên bản duy nhất trên maven được cài đặt trên PC của tôi và giải pháp được đưa ra trên nhiều blog đề cập đến việc xóa M2_HOMEbiến môi trường trước đó là không hợp lệ.

Tôi đã đọc và thử tất cả các giải pháp được đưa ra tại các blog như:

nhưng vẫn không thể đến được Những gì tôi có thể thiếu trong toàn bộ điều này? Cảm ơn trước.


4
Chỉ cần tải xuống nhị phân zip và nó đã bị hỏng. Thay thế bằng .tar.gzvà nó hoạt động. Vì vậy, khi M2_HOMEđược đặt chính xác thực sự cố gắng kiểm tra xem những gì bạn đã tải xuống là chính xác.
Pavel Horal

@PavelHoral cũng xảy ra với tôi
hoaphumanoid

Tôi chỉ gặp lỗi này trên jenkins này, thông qua lệnh như mvn biên dịch hoạt động tốt!
Nullpulum

Câu trả lời:


141

Tôi trúng vấn đề này quá, và thấy này bài viết. Đối với Maven3, việc thay đổi tên biến môi trường của tôi từ M2_HOME thành M3_HOME đã thực hiện thủ thuật này. Tôi đang dùng Mac chạy OSX 10.9 với JDK 1.7. Hi vọng điêu nay co ich.

Lưu ý: Vui lòng xóa M2_HOME, nếu đã được đặt. Ví dụ:unset M2_HOME


26
Tương tự đối với tôi trên máy mac. Đảm bảo bạn xóa M2_HOME
Luke

Đã làm việc với nhị phân Maven 3.3.3, trên Ubuntu. JAVA_HOME không được đặt.
TFuto

2
Điều này hoạt động kể từ Mac OS 10.10.5 với maven được cài đặt (3.3.3).
Giê-rê-mi

@Luke Cảm ơn bạn! unset M2_HOME.
Jared Burrows

5
Giải pháp này hoạt động, nhưng không phải vì những lý do bạn có thể nghĩ. Vấn đề, như đã nêu trong một số các bình luận của bài báo tham khảo, không phải là M3_HOME cần thay vào đó, nhưng đúng hơn là M2_HOME là không đúng quy định. Có vẻ như M3_HOME hoàn toàn không được sử dụng, vì vậy về cơ bản những gì đang xảy ra là mặc định được sử dụng khi bạn xóa M2_HOME.
Matt

64

Mặc dù câu hỏi đã được trả lời, tôi muốn nói thêm rằng, nếu bạn gặp phải lỗi đã đề cập ở trên, hãy chắc chắn rằng bạn đã tải xuống tệp Binary .

Chỉ nên tải xuống tệp nguồn nếu bạn là người dùng nâng cao và bạn biết cách xử lý.

Tôi đã có khá nhiều chia sẻ về những người tải xuống tập tin sai, người cao niên và đàn em


1
Tôi thực sự đã tải nguồn về mục đích , vì đó là cách truyền thống để làm mọi thứ, nhưng tôi vô tình làm theo hướng dẫn cho việc cài đặt nhị phân. Chỉ cần sao chép xuống tar nhị phân thực sự dễ dàng hơn trong thời gian dài.
MDMoore313

+1: Điều tương tự đã xảy ra ở đây - vô tình nhấp vào liên kết tải xuống sai. Hoạt động không phải là tôi có tập tin zip đúng!
Laura Ritchey

Điều này một mình khắc phục vấn đề cho tôi - cảm ơn bạn!
Liran H

Thật. Đã tải xuống các tệp nguồn và đã thử cập nhật M3_HOME nhưng không hoạt động. Binaries hoạt động tốt.
Rohit

Chỉ cần điều này xảy ra với tôi. Trang web này không rõ ràng để sử dụng.
frodo2975

60

Tôi đã gặp vấn đề tương tự và đã có thể giải quyết nó bằng cách cẩn thận làm lại các Biến môi trường:

  • M2_HOME
  • M2
  • JAVA_HOME

Ngoài ra, tôi đã tạo cho chúng tất cả các Biến hệ thống , không phải Biến người dùng như hướng dẫn Maven nói. Khi bạn

echo %Path%

Đảm bảo bạn có thể thấy các biến% M2% và% JAVA_HOME% được mở rộng hoàn toàn, nghĩa là:

C:\Users\afairchild>echo %Path%
C:\Program Files\Apache Software Foundation\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0_09\bin; [etc]

M2_HOME là điều đầu tiên để kiểm tra xem bạn có đang nâng cấp không. JAVA_HOME sẽ không thay đổi.
Joe Leo

3
Làm thế nào là M2biến môi trường được sử dụng? Tôi chỉ có JAVA_HOMEM2_HOME.
Kevin Meredith

1
@KevinMeredith: Biến M2môi trường đôi khi được sử dụng để chỉ %M2_HOME\bin%đường dẫn, sau đó lần lượt được thêm vào %Path%biến môi trường. Điều này là cần thiết khi mvn.batkhông thể tìm thấy tệp bó Maven trong các %Path%mục tiêu chuẩn được xác định. Một trường hợp sử dụng thông thường sẽ là một thư mục cài đặt không chuẩn cho Maven.
Moreaki

@Alex Tôi chỉ nhận được lỗi này trên jenkins này, thông qua lệnh như mvn biên dịch hoạt động tốt!
Nullpulum

49

Có vấn đề này trên hai bản cài đặt Ubuntu 12.04 khác nhau, mặc dù các bản cài đặt được thực hiện bởi apt-get. Vấn đề là M2_HOME.

Đã sửa với:

export M2_HOME=/usr/share/maven

2
Nó hoạt động với tôi nhưng với M2_HOME = / usr / share / maven2 (trong trường hợp bất kỳ ai khác thử nó). Cảm ơn!
jimkont

1
Trên Ubuntu, tốt hơn là tạo /etc/profile.d/maven.sh bằng lệnh bạn đã chỉ : export M2_HOME=/usr/share/maven. Như @jimkont đã chỉ, đôi khi là maven2 hoặc maven3 (tất nhiên nếu bạn đã cài đặt maven3).
Rael Gugelmin Cunha

Nó hoạt động. Cảm ơn. Nhưng chúng ta có thể thêm nó vào tập tin / etc / environtment không?
karthik

35

Tôi tin rằng lỗi này gây ra do tải xuống SRC thay vì BINary từ trang Maven. Vui lòng đảm bảo tải xuống Binary zip.

Vì đường dẫn bên dưới, bạn sẽ chỉ nhận được khi tải xuống SRC:

M2_HOME C: \ apache-maven-3.0.4 \ apache-maven \ src

nhập mô tả hình ảnh ở đây


Điều này làm việc cho tôi. Thực hiện theo hướng dẫn tại đây: maven.apache.org/install.html và đặt biến PATH hệ thống của bạn với C: \ apache-maven-3.6.3 \ bin
ChrisE

21

Có vẻ như bạn đã cài đặt (giải nén) các tệp nguồn thay vì các tệp nhị phân dựa trên thông tin đường dẫn của bạn. Thay vào đó, hãy thử cài đặt các tệp nhị phân và làm theo câu trả lời của người đăng khác.


Cảm ơn tôi cũng cố định. Tuy nhiên, tại sao bạn không thể sử dụng tải xuống src, miễn là nó chứa chính xác thực thi trong thư mục bin?
java123999

13

Vâng, tôi đã có vấn đề này và sau khi xem bài đăng này và câu trả lời đặc biệt là khmarbaise tôi nhận thấy đó M2_HOME

D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0\bin

và sau đó tôi đã tán thành nó

D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0

Tôi muốn đề cập rằng tôi sử dụng windows 7 (x64)


Tôi chỉ gặp lỗi này trên jenkins này, thông qua lệnh như mvn biên dịch hoạt động tốt!
Nullpulum

6

Giải pháp cho các phiên bản sau của Maven là đơn giản. Tôi đang dùng OS X ElCap, 10.11.6 và được nâng cấp lên Maven 3.3.9. Tôi đã có cùng một vấn đề với lỗi " Could not find ...org.codehaus.plexus...". Liên kết được cung cấp ở đây cung cấp giải pháp trong một nhận xét của McKamey - chỉ cần xóa M2_HOME ( unset M2_HOME). Khi tôi đã thử nó, tất cả đều hoạt động như mong đợi.

Điều này có thể được xác nhận bằng cách truy cập vào Maven install page: "Thêm thư mục bin của thư mục đã tạo apache-maven-3.3.9 vào biến môi trường PATH" - hoàn toàn không đề cập đến M2_HOME hoặc M3_HOME.


4

Bạn nên thay đổi vị trí của M2_HOME thành như sau:

set M2_HOME=C:\apache-maven-3.0.4\apache-maven

Hơn nữa, việc cài đặt JDK trông giống JRE hơn là JDK. Đối với Maven, bạn cần JDK và KHÔNG JRE.


Cảm ơn nhưng tôi có cả jdk và jre. Bạn có thể thấy rằng tôi đã cho JAVA_HOME là C: \ Program Files \ Java \ jdk1.7.0_04. Và nếu tôi đưa ra đường dẫn cho M2_HOME mà bạn đã nói, cmd thậm chí sẽ không nhận ra lệnh 'mvn'.
manofsins

Bạn thay đổi M2_HOME như tôi đã mô tả, nó sẽ thêm% M2_HOME% \ bin vào đường dẫn cần thiết để gọi lệnh mvn.
khmarbaise

4

Tôi đã gặp một vấn đề tương tự trên máy Mac OSX của tôi. Sau một loạt các thử nghiệm và lỗi, cuối cùng tôi đã giải quyết nó.

Tôi ~/.bash_profiletrông như thế này

export M2_HOME=/Users/xyz/maven-3.x/bin
export PATH=$PATH:$M2_HOME

và khi tôi cố gắng echo M2_HOMEtừ thiết bị đầu cuối, nó chỉ cho tôi đường dẫn chính xác nhưng khi tôi cố gắng thực hiện bất kỳ lệnh maven nào mvn cleanhoặc mvn install, nó luôn đưa ra cùng một vấn đề

Không thể tìm thấy hoặc tải lớp chính org.codehaus.plexus. Classworlds.launcher.Launcher

Tôi đã giải quyết vấn đề này bằng cách thay đổi vấn đề M2_HOMEnày

export M2_HOME=/Users/xyz/maven-3.x
export PATH=$PATH:$M2_HOME/bin

Và Voila ! Nó bắt đầu làm việc! Chỉ bằng cách di chuyển vị trí của /bintừ M2_HOME sang phía trướcPATH


3

Chỉ cần đảm bảo rằng bạn đã tải xuống kho lưu trữ zip nhị phân (apache-maven-3.5.0-bin.zip) thay vì lưu trữ mã nguồn. Sau đó thêm thư mục bin của thư mục đã tạo apache-maven-3.5.0 vào biến môi trường PATH.


3

Đối với hầu hết các thiết lập Maven có vấn đề gì đó như "Không thể tìm thấy hoặc tải lớp chính ...", hãy bắt đầu với các bước bên dưới để xem liệu có khắc phục được không:

  • Đảm bảo bạn đã giải nén đúng kho lưu trữ (lưu trữ BINary và không lưu trữ SOURCE)
  • Xóa tất cả các biến người dùng và hệ thống liên quan đến Maven (ví dụ: M2_HOME, M2_OPTS, v.v.)
  • Đảm bảo biến hệ thống JAVA_HOME được thiết lập (ví dụ: "C: \ Program Files \ Java \ jdk1.8.0_172")
  • Đảm bảo vị trí java bin được thêm vào trong biến hệ thống "đường dẫn" (ví dụ: "% JAVA_HOME% \ bin")
  • Đảm bảo vị trí maven bin được thêm vào trong biến hệ thống "đường dẫn" (ví dụ: "C: \ MyInstalls \ apache-maven-3.5.4 \ bin")

sau đó...

  • Xác minh java là thiết lập (tại lệnhprompt: java -version)
  • Xác minh maven là thiết lập (tại lệnhprompt: mvn --version)

2

Tôi gặp vấn đề tương tự. Tôi có hộp Windows xp và khi tôi gõ mvn -versionvào dấu nhắc dòng lệnh, tôi nhận được thông báo lỗi đáng sợ

"Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher"

Tôi xác nhận rằng M2_HOMEbiến của tôi đã được đặt thành đường dẫn nơi Maven được cài đặt trên pc và echo %path%xác nhận rằng Maven nằm trong đường dẫn của tôi.

Tôi đã tìm kiếm một giải pháp trong nhiều giờ khi tôi vấp phải giải pháp của mình (tôi nói giải pháp của mình vì tôi biết đây có lẽ sẽ không phải là giải pháp cho tất cả mọi người đang mắc cùng một lỗi).

Tôi đã sao chép đường dẫn được gán cho M2_HOMEbiến của tôi . Tôi đã mở một cửa sổ cmd và gõ cd và dán đường dẫn tôi nhận được từ M2_HOMEbiến của mình . Tại thời điểm đó tôi biết rằng đường dẫn là chính xác vì đường dẫn được hiển thị trong cửa sổ. Lúc này tôi đã nhập lệnh dir và thật ngạc nhiên, tôi đã gặp lỗi File Not Found.

Tôi đã đi đến con đường đó thông qua Explorer và chắc chắn có những tập tin hiện diện. Tôi nhận thấy rằng các thư mục đã bị mờ dần, nhưng tôi có thể truy cập chúng và xem các tệp trong mỗi thư mục (tôi có quyền quản trị trên máy tính của mình). Tôi đã xem các thuộc tính của thư mục mẹ cho Maven và thấy rằng hộp Ẩn đã được chọn. Tôi đã gỡ bỏ kiểm tra và áp dụng và thử lại lệnh dir của tôi với thành công.

Tiếp theo tôi đã thử lại mvn –versionlệnh, nhưng lần này tôi đã nhận lại kết quả mong đợi.

C:\>mvn -version
Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
Maven home: C:\Program Files\apache-maven-3.0.3
Java version: 1.5.0_16, vendor: Sun Microsystems Inc.
Java home: C:\Java\jdk1.5.0_16\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"

Cuối cùng tôi đã tạo một tệp jar và war và ứng dụng web của tôi đã chạy thành công trên Tomcat cục bộ của tôi.

Tôi hy vọng điều này sẽ giúp một số bạn ngoài kia.


2

cài đặt phiên bản nhị phân của maven khắc phục sự cố

apache-maven-3.6.1-bin.zip


1

Bên cạnh những gì @khmarbaise đã chỉ ra, tôi nghĩ bạn đã đánh lừa JAVA_HOME của bạn. Nếu bạn đã cài đặt ở vị trí mặc định, thì sẽ không có dấu "-" (dấu gạch nối) giữa jdk và 1.7.0_04. Vì vậy, nó sẽ là

JAVA_HOME C:\Program Files\Java\jdk1.7.0_04 

Cảm ơn nhưng thật không may, tôi đã nhầm nó ở đây và nó giống như bạn đã nói, "không có dấu gạch nối".
manofsins

1

Đối với những người khác có thể gặp phải vấn đề này, đừng quên kiểm tra ~ / .mavenrc để biết cài đặt M2_HOME hoặc JAVA_HOME.


1

Hãy thử tải xuống zip nhị phân (ví dụ: Maven 3.0.5 (zip nhị phân)) thay vì nguồn hoàn chỉnh trong trang web maven chính thức. Cũng đảm bảo rằng dòng lệnh nhận ra các lệnh java và javac. Tôi nhận thấy rằng Maven Source zip không bao gồm bất kỳ thư viện nào trong thư mục lib, tuy nhiên, Binary zip có chúng + trong thư mục khởi động, nó có plexus-classworlds-2.4.jar. Có lẽ vấn đề là với sự vắng mặt của các thư viện này. Dù sao nó cũng giúp tôi vì vậy M2_HOME của tôi là: C: \ Program Files \ Java \ apache-maven-3.0.5 và tại PATH tôi đặt: C: \ Program Files \ Java \ apache-maven-3.0.5 \ bin.


1

Tôi thấy vấn đề này trong centOS của tôi là do "Oracle Java được thay thế bởi gcj", sau khi thay đổi java mặc định thành "Oracle Java", vấn đề đã được giải quyết.

alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
 + 2           /usr/java/jdk1.7.0_67/bin/java

1

Có vẻ như bạn đã cài đặt các tệp Nguồn (Vì srcchỉ có trong Tệp nguồn và chúng tôi không cần đến nó). Hãy thử cài đặt Binary Files từ đó . Và sau đó đặt các biến môi trường như được mô tả ở đó . Điều này làm việc cho tôi. Và tôi chắc chắn rằng nó cũng sẽ làm việc cho bạn.


1

Tôi nghĩ bạn tải phiên bản sai. Tôi gặp vấn đề này ngay bây giờ, không có phương pháp làm việc sau khi tìm kiếm và tìm kiếm. Cuối cùng, tôi thấy rằng maven tôi đã tải xuống là kho lưu trữ mã nguồn . Sau khi tôi đổi sang kho lưu trữ zip nhị phân , mọi thứ sẽ ổn.


Tôi vừa đăng bài này. Đây chính xác là vấn đề tôi gặp phải. Giá như tôi đã đọc câu trả lời của bạn trước khi nó cứu tôi 30 phút.
Bartho Bernsmann

1

Tôi cũng phải đối mặt với vấn đề tương tự. Nhưng trong trường hợp của tôi, tôi đã sử dụng thư mục apache-maven-3.3.3-src trong các biến đường dẫn. Sau đó tôi đã sửa những cái có đường dẫn chính xác của thư mục apache-maven-3.3.3-bin. Điều này đã giải quyết vấn đề. Không nói rằng đó là lỗi tương tự được báo cáo ở đây nhưng bằng cách này bạn cũng có thể nhận được lỗi này và khắc phục nó. Đó là những gì tôi đang cố gắng nói ở đây.


1

Mở một thiết bị đầu cuối mới và làm theo

M2_HOME=/Users/macbook/apache-maven-3.6.1 //Set where maven is
M2=$M2_HOME/bin                          //Set home as bin
export PATH=$M2:$PATH                   //Place the new path

Sau đó gõ

mvn -version

Bạn có thể thiết lập điều này ./bash_profileđể tự động thực hiện mỗi khi bạn chạy thiết bị đầu cuối


0

Chính xác lỗi tương tự có thể xuất hiện ngay cả với các cài đặt biến môi trường chính xác, nếu bạn sao chép binthư mục CHỈ vào thư mục cài đặt. Nó làm cho whichcông việc tốt, và người mới bị mắc kẹt.


0

Tôi gặp vấn đề này khi tôi sử dụng Maven 3.5.4 trên OpenJDK 11 trên Ubuntu. OpenJDK 11 trên Ubuntu thực sự vẫn là một JDK10:

$ ls -al /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Aug 24 04:54 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java
$ java --version
openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3, mixed mode)

Tôi đã cài đặt OpenJDK từ Oracle vào /opt/jdk-11.0.1 và chạy Maven như thế này:

JAVA_HOME=/opt/jdk-11.0.1 mvn

Bây giờ nó hoạt động như một nét duyên dáng.


0

Tôi đã có một vấn đề với plugin Surefire chính nó. Quay trở lại phiên bản 2.6 làm việc cho tôi. Phiên bản 2.18 / 20 / 22.1 đã cho tôi lỗi. Bây giờ tôi đã thử phiên bản 3.0.0-M1 của plugin Surefire và nó hoạt động.

Vì vậy, có điều gì đó không ổn trong việc rút tiền chắc chắn giữa phiên bản 2.6 và 3.0.0. Tôi giả sử có một cái gì đó được mã hóa cứng như mặc định mà không nên.


0

Đối với tôi, buồn cười như nó nghe, nó đã giúp khởi động lại eclipse...


0

Điều này làm việc cho tôi:

  1. Xóa tất cả các tham chiếu Mavin trong Biến môi trường
  2. Tải xuống Binary từ mavin
  3. Giải nén nó đến nơi bạn thích ex: C: \ apache-maven-3.6.0
  4. Chuyển đến biến môi trường và thêm vào đường dẫn biến hệ thống "C: \ apache-maven-3.6.0 \ bin"
  5. bắt đầu nhắc lệnh với tư cách quản trị viên
  6. kiểm tra phiên bản với: mvn -v

Kết quả CMD:

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20: 41: 47 + 02: 00) Nhà của Maven: C: \ apache-maven-3.6.0 \ bin ..


0

Tôi cũng gặp phải Lỗi sau trong hệ thống của mình (Mac)

Lỗi: Không thể tìm thấy hoặc tải lớp chính org.codehaus.plexus. Classworlds.launcher.Launcher

Sau khi thực hiện một số trình duyệt ngẫu nhiên, tôi đã xem qua liên kết " http://maven.apache.org/install.html " có nội dung "JAVA_HOME" nên được đặt thành "/ L Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Nội dung / Trang chủ / jre ".

Khi tôi thay đổi "JAVA_HOME" như đã nêu ở trên trong ".bash_profile", lệnh "mvn" bắt đầu hoạt động nhưng lệnh "javac -version" đã ngừng hoạt động.

Khi tôi gõ lệnh "javac -version", tôi đã gặp lỗi sau

Không thể xác định vị trí thực thi tại "/ L Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Content / Home / jre / bin / javac" (-1)

Do đó, tôi đã khôi phục "JAVA_HOME" của mình thành "/ L Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Content / Home" trong ".bash_profile" và thêm dòng sau vào đầu trong tập lệnh "mvn"

xuất JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Nội dung / Trang chủ / jre

Bây giờ cả hai lệnh "mvn" và "javac" đều hoạt động bình thường, nhưng sau khi quan sát cẩn thận tập lệnh mvn, tôi không thể tạo ra sự khác biệt giữa các lệnh sau

/ Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Trang chủ / bin / java -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0. jar Dl Library.jansi.path = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / lib / jansi -igen -Dmaven.multiModuleProjectDirectory = / Users / venkatarajeevmandava / Documents / Maven bin org.codehaus.plexus. classworlds.launcher.Launcher

/ Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Nội dung / Trang chủ / jre / bin / java -classpath /Users/venkatarajeevmandava/Document/Maven/apache-maven-3.6.1/boot/plexus- 0.jar -Dgroupworlds.conf = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / bin / m2.conf -Dmaven.home = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6. 1 -Dl Library.jansi.path = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / lib / jansi -igen -Dmaven.multiModuleProjectDirectory = / Users / venkatarajeevmandava / Maven 1 / bin org.codehaus.plexus. Classworlds.launcher.Launcher

Ở trên, lệnh đầu tiên gây ra lỗi sau

Lỗi: Không thể tìm thấy hoặc tải lớp chính org.codehaus.plexus. Classworlds.launcher.Launcher

trong khi lệnh thứ hai hoạt động tốt Xin lưu ý rằng cả hai đường dẫn trên đều có lệnh "java" trong khi một đường dẫn từ "jre", đường dẫn kia là từ "jdk"

Các biến toàn cục khác như sau trong ".bash_profile"

xuất M2_HOME = / Người dùng / venkatarajeevmandava / Tài liệu / Maven / apache-maven-3.6.1

xuất PATH = $ PATH: $ M2_HOME / thùng


-1

Đây là một vấn đề phổ biến trong khi thiết lập Maven. Tất cả bạn cần làm là dưới đây: -

  1. M2_HOME: - D: \ apache-maven-2.0.11
  2. M2: - D: \ apache-maven-2.0.11 \ bin
  3. Đường dẫn: - Nối nó với;% M2%

M2_HOME & M2: - cần được khai báo là biến hệ thống chứ không phải là biến USER / ADMIN.

Đường dẫn: - Đây có thể là biến hệ thống HOẶC biến USER / ADMIN [PATH]. Tốt nhất là biến hệ thống.

Khi bạn cẩn thận thực hiện cài đặt 3 biến này, bạn có thể xác minh cài đặt của Maven như dưới đây.

Trên CMD Nhắc: -


C: \ Tài liệu và Cài đặt \ ADMIN> mvn --version


Đầu ra: -


Apache Maven 2.0.11 (r909250; 2010-02-12 11: 25: 50 + 0530) Phiên bản Java: 1.6.0_22 Trang chủ Java: C: \ Program Files \ Java \ jdk1.6.0_22 \ jre Ngôn ngữ mặc định: en_US, nền tảng mã hóa: Cp1252 Tên hệ điều hành: "windows xp" phiên bản: "5.1" arch: "x86" Family: "windows"

Cảm ơn.


-1

Bên cạnh các câu trả lời có thể hữu ích, nhưng có thể quá có triệu chứng, đây là một câu hỏi cố gắng giúp tìm ra nguyên nhân của vấn đề.

Maven là một công cụ java dòng lệnh. Điều đó có nghĩa, nó không phải là một nhị phân độc lập, nó là một bộ sưu tập của java.jar , được giải thích bởi một jvm ( java.exetrên windows, javatrên linux).

Các mvnlệnh, là một kịch bản. Trên cửa sổ, nó là một đoạn script gọi làmvn.cmd và trên linux, nó là script script. Vì vậy, nếu bạn viết : mvn install, điều gì sẽ xảy ra:

  1. một trình thông dịch lệnh (/bin/sh hoặc cmd.exe) được gọi cho kịch bản gọi thực tế
  2. kịch bản này đặt các biến môi trường cần thiết
  3. và cuối cùng, nó gọi một trình thông dịch java với đường dẫn lớp được yêu cầu có chức năng maven.

Vấn đề là với (2). May mắn thay, kịch bản này là đơn giản, rất đơn giản. Đối với một lập trình viên java, sẽ không có gì khó khăn khi gỡ lỗi một đoạn script khoảng 20 dòng, ngay cả khi đó là một ngôn ngữ hơi xa lạ.

Trên linux, bạn có thể gỡ lỗi shellscripts đưa -xcờ cho trình thông dịch shell của bạn (rất có thể bash). Trên cửa sổ, bạn phải tìm một số cách khác để gỡ lỗi một cmd.exetập lệnh. Vì vậy, thay vì mvn install, đưa ra lệnh bash -x mvn install.

Kết quả giống như:

+ '[' -z '' ']'
+ '[' -f /etc/mavenrc ']'
+ '[' -f /home/picsa/.mavenrc ']'
+ cygwin=true
+ darwin=false

... không có quá nhiều thứ ...

+ MAVEN_PROJECTBASEDIR='C:\peter\bin'
+ export MAVEN_PROJECTBASEDIR
+ MAVEN_CMD_LINE_ARGS=' '
+ export MAVEN_CMD_LINE_ARGS
+ exec '/cygdrive/c/Program Files/Java/jdk1.8.0_66/bin/java' -classpath 'C:\peter/boot/plexus-classworlds-*.jar' '-Dclassworlds.conf=C:\peter/bin/m2.conf' '-Dmaven.home=C:\peter' '-Dmaven.multiModuleProjectDirectory=C:\peter\bin' org.codehaus.plexus.classworlds.launcher.Launcher
Fehler: Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden

Cuối cùng, bạn có thể dễ dàng kiểm tra, biến môi trường nào bị lỗi và bạn có thể dễ dàng sửa tập lệnh của mình (hoặc đặt nó là những gì cần thiết).

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.