2014-10-11 46 views
29

Tôi chưa bao giờ làm việc với Maven trước và tôi theo các hướng dẫn here. Khi tôi chạy lệnhLỗi Maven: Có lẽ bạn đang chạy trên một JRE chứ không phải là một JDK?

mvn integration-test -Pamp-to-war 

Nó ban đầu được tải về một bó toàn bộ phụ thuộc, và cuối cùng nó đã cho thấy,

COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 
[INFO] 1 error 

Tôi đang sử dụng ubuntu 13.04.

Nếu có bất kỳ điều gì bạn muốn tôi nói với bạn, hãy cho tôi biết. Cảm ơn.

EDIT

Khi tôi làm echo $JAVA_HOME tôi nhận được /usr/lib/jvm/java-7-openjdk-i386/

Khi tôi làm mvn -version

tôi nhận được,

Apache Maven 3.0.4 
Maven home: /usr/share/maven 
Java version: 1.7.0_25, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-7-openjdk-i386/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.8.0-26-generic", arch: "i386", family: "unix" 

Ngoài ra, tôi phát hiện ra this problem faced by someone else. Nhưng tôi không chắc chắn làm thế nào để đi về các giải pháp được chỉ định?

Chỉnh sửa tiếp theo.

[email protected]:/usr/lib/jvm/java-7-openjdk-i386$ ls -l 
total 12 
drwxr-xr-x 2 root root 4096 Sep 9 10:44 bin 
lrwxrwxrwx 1 root root 41 Jul 4 2013 docs -> ../../../share/doc/openjdk-7-jre- headless 
drwxr-xr-x 5 root root 4096 Oct 13 2013 jre 
drwxr-xr-x 4 root root 4096 Oct 13 2013 man 
+2

Bạn có JRE thay vì cài đặt JDK không? – Zavior

+0

Tôi có jdk. Khi tôi thực hiện 'echo $ JAVA_HOME' nó xuất,/usr/lib/jvm/java-7-openjdk-i386/ – Kraken

+0

@Zavior Vui lòng kiểm tra chỉnh sửa ngay bây giờ. Tôi đã cập nhật. – Kraken

Trả lời

36

Rõ ràng, nó yêu cầu tệp tools.jar bên trong thư mục lib của $ JAVA_HOME của tôi. Tôi không có thư mục lib, vì vậy tôi cài đặt lại jdk của tôi lệnh sử dụng

apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib 

Ngoài ra, this link may help some people.

3

Đây là cách tôi cố định vấn đề của tôi

Clik chuột phải vào dự án> properties> Java Compiler (chọn cái bạn đang sử dụng)

nó là 1,5 đối với tôi nhưng tôi đã cài đặt 1,8. vì vậy tôi đã thay đổi nó thành 1.8 .. và voilla nó hoạt động !.

55

Tôi đã gặp vấn đề tương tự với java 8 (ubuntu 16.04), cố gắng biên dịch sử dụng dòng lệnh mvn.

Tôi đã xác minh $JAVA_HOME, java -versionmvn -version. Mọi thứ có vẻ không sao khi chỉ đến /usr/lib/jvm/java-8-openjdk-amd64.

Có vẻ như java-8-openjdk-amd64 chưa được cài đặt hoàn toàn theo mặc định và chỉ chứa JRE (mặc dù tên của nó là "jdk").

Cài đặt lại JDK đã thực hiện thủ thuật.

sudo apt-get install openjdk-8-jdk 

Sau đó, một số tệp mới và thư mục mới được thêm vào /usr/lib/jvm/java-8-openjdk-amd64 và mvn có thể biên dịch lại.

+0

Tôi đoán đây là bản chất giống như câu trả lời được chấp nhận - không có JDK, bạn cũng sẽ không có tools.jar. – eis

5

Đối với tôi, nó hoạt động như sau. Hãy nhìn vào biến môi trường JAVA_HOME, cho dù nó trỏ đến JRE hay JDK.? Nếu nó trỏ đến JRE, bạn sẽ phải đối mặt với "Có lẽ bạn đang chạy trên một JRE chứ không phải là một JDK" vấn đề.nếu có thay đổi đường dẫn đến JDK.

Sửa đổi như thế này, nó làm việc cho tôi.

JAVA_HOME C: \ Program Files \ Java \ jdk1.8.0_31

0

Nhấp chuột phải vào thư mục dự án của bạn (Maven một), chọn Properties và từ cửa sổ thuộc tính, một lần nữa chọn Java Compiler và xem những gì được chọn chống lại trình độ tuân thủ trình biên dịch và đảm bảo rằng nó là phiên bản tương tự như jre của bạn. Trong trường hợp của tôi, tôi đã có 1,8 nhưng 1,5 được chọn so với mức tuân thủ trình biên dịch. Sau khi chọn 1.8, quá trình tạo thành công mà không có lỗi này.

3

Thêm cấu hình này trong pom.xml

<project ...> 
    ... 
    <build> 
     ... 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
        <fork>true</fork> 
        <executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    ... 
</project> 
1

Kiểm tra xem/usr/bin có 'javac'. Nếu không bạn đã cài đặt JRE & phải cài đặt phiên bản jdk dev như "java-1.8.0-openjdk-devel.x86_64"

0

Tôi đã gặp lỗi tương tự và tôi đã thiếu biến Người dùng: JAVA_HOME và giá trị cho SDK - "C: \ Program Files \ Java \ jdk-9.0.1" trong trường hợp của tôi

0

Chỉ cần thêm các chi tiết khác về vị trí cần thiết lập. Lý do chính sẽ là thiết lập JAVA_HOME trong biến môi trường nên được trỏ đến đúng vị trí JDK.

  1. Kiểm tra hệ thống -> nâng cao hệ thống Cài đặt
  2. Bấm về Môi trường biến
  3. Thêm JAVA_HOME biến -> "C: \ Program Files \ Java \ jdk1.8.0_141;"
  4. Chỉnh sửa "đường dẫn" -> nối thêm% JAVA_HOME%; cho văn bản hiện tại.
0

Tôi gặp vấn đề tương tự sau khi cài đặt gói java-1.8.0-openjdk trên AWS Linux AMI. Giả định không chính xác mà tôi đã thực hiện, là do tệp đã kết thúc bằng openjdk nó sẽ là phiên bản jdk. Đây không phải là trường hợp.

openjdk install page giải thích mọi thứ rõ ràng.

Gói java-1.8.0-openjdk chỉ chứa môi trường Java Runtime . Nếu bạn muốn phát triển các chương trình Java, hãy cài đặt gói java-1.8.0-openjdk-devel.

Nếu bạn đã cài đặt các gói java-1.8.0-openjdk, chỉ để lại nó và giá trị JAVA_HOME nếu nó làm việc cho JRE và cài đặt gói java-1.8.0-openjdk-devel sử dụng yum install java-1.8.0-openjdk-devel -y .

Các vấn đề liên quan