Thiếu hiện vật com.sun: tools: jar


91

Tôi đã làm theo hướng dẫn bắt đầu, nhưng bị mắc kẹt sau khi nhập dự án playn bằng Maven. Tôi đang sử dụng Eclipse Indigo chạy trên Windows 7 64bit.

Tất cả các dự án đã nhập đều có cùng một lỗi:

Missing Artifact com.sun:tools:jar in all the pom.xml files.

Sau vài giờ tìm kiếm trên các diễn đàn, tôi đã thử:

Cài đặt Java 1.6.029 mới nhất Thay đổi JAVA_HOMEbiến môi trường của tôi để trỏ đến \program files\Java\jdk1.6_029 Thay đổi tùy chọn Java Eclipse của tôi để sử dụng JRE jdk1.6_029.

Tôi thực sự muốn thử nghiệm với playn, nhưng tại sao có một số bài viết mà tôi dường như không thể tìm thấy câu trả lời thuận lợi về giải pháp. Một số người nói rằng Sun đã xóa thứ gì đó khỏi jdk 64bit, những người khác nói rằng bạn phải chỉnh sửa các tệp xml của mình, nhiều người nói rằng bạn đã thay đổi của mình JAVA_HOMEvà một người khác nói rằng bạn phải thay đổi các tùy chọn máy ảo của mình cho Eclipse.

Bất kỳ trợ giúp nào về việc giải quyết vấn đề này sẽ được đánh giá cao và có thể hữu ích cho nhiều người, vì tôi không có một thiết lập đặc biệt kỳ quặc nào ở đây.

(sửa) Đây là pom.xml trong dự án đầu tiên. Eclipse gắn cờ lỗi trong dòng có nội dung:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>com.googlecode.playn</groupId>
    <artifactId>playn-project</artifactId>
    <version>1.1-SNAPSHOT</version>
  </parent>

  <artifactId>playn-android</artifactId>
  <name>PlayN Android</name>
  <packaging>jar</packaging>

  <repositories>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>com.googlecode.playn</groupId>
      <artifactId>playn-core</artifactId>
      <version>${project.version}</version>
    </dependency>

    <!-- needed because Android uses the same JSON code as playn-java;
         that should be factored into a library shared by both backends -->
    <dependency>
      <groupId>com.googlecode.playn</groupId>
      <artifactId>playn-java</artifactId>
      <version>${project.version}</version>
    </dependency>

    <dependency>
      <groupId>com.google.android</groupId>
      <artifactId>android</artifactId>
      <version>${android.version}</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src</sourceDirectory>
  </build>
</project>

Bạn có gặp lỗi tương tự khi chạy maven từ dòng lệnh không?
Raghuram

Tôi đã thêm tệp pom.xml. Tôi xin lỗi vì không biết cách làm bất cứ điều gì với maven bằng dòng lệnh.
boldinventions

POM bị hỏng. Thiếu các thẻ bắt buộc như groupId, tạo tác, phiên bản ... POM mẹ cũng là phiên bản mô-đun không tồn tại trong trung tâm Maven ....
Mark O'Connor

bạn đã sửa nó bằng cách nào đó? không ai trong số này dường như làm việc cho tôi (Windows7-64 cắn - jdk1.6)
Ovidiu Latcu

Vì đây là một vấn đề phổ biến, bạn có thể chấp nhận một câu trả lời phù hợp với bạn không?
Roy Truelove

Câu trả lời:


56

Tôi vừa đăng lên câu hỏi này về cùng một vấn đề này và cách tôi giải quyết nó, nhưng tôi cũng sẽ dán (và mở rộng) nó ở đây, vì nó có vẻ phù hợp hơn.

Tôi đã gặp vấn đề tương tự khi sử dụng Eclipse trong Windows 7, ngay cả khi tôi đã xóa JRE khỏi danh sách JRE trong cài đặt Eclipse và chỉ có JDK ở đó.

Cuối cùng những gì tôi phải làm (như bạn đã đề cập trong câu hỏi của mình) là sửa đổi dòng lệnh cho phím tắt mà tôi sử dụng để khởi chạy Eclipse để thêm đối số -vm vào nó như sau:

-vm "T:\Program Files\Java\jdk1.6.0_26\bin"

Tất nhiên, bạn sẽ điều chỉnh nó để trỏ đến thư mục bin của cài đặt JDK của bạn . Điều này làm cho bản thân Eclipse đang chạy bằng JDK thay vì JRE, và sau đó nó có thể tìm thấy tools.jarđúng.

Tôi tin rằng điều này liên quan đến cách Eclipse tìm thấy JRE mặc định của nó khi không có gì được chỉ định. Tôi đoán nó có xu hướng thích JRE hơn JDK (tại sao, tôi không biết) và sử dụng JRE tương thích đầu tiên mà nó tìm thấy. Và nếu nó tắt các khóa đăng ký Windows như câu trả lời của Vladiat0r gợi ý, nó sẽ tìm HKLM\Software\JavaSoft\Java Runtime Environmentkhóa trước tiên thay vì HKLM\Software\JavaSoft\Java Development Kitkhóa.


10
Điều này đã hiệu quả với chúng tôi trong Windows 7. Chúng tôi phải sửa đổi phím tắt để thêm đối số -vm "..." thay vì sử dụng eclipse.ini. Ngoài ra, chúng tôi phải nhập lại dự án maven của mình vào không gian làm việc trước khi lỗi biến mất.
Kit Menke

2
Tương tự ở đây - không có xúc xắc với .ini, nhưng đối số -vm trong cmdline đã hoạt động.
Roy Truelove

1
Tôi đã chỉnh sửa câu trả lời để giải thích cách thay đổi eclipse.init. Nguồn: wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example
OGrandeDiEnne

1
Tương tự ở đây - thêm -vm vào phím tắt đã hiệu quả với tôi. Tôi không phải nhập lại dự án của mình, chỉ cần dự án / maven / cập nhật nó là đủ.
Łukasz Dumiszewski

1
Để nó hoạt động, tôi cũng cần thêm cả javaw.exevào đường dẫn đó (đầy đủ -vm "T:\Program Files\Java\jdk1.8.0_66\bin\javaw.exe":);
Jacob van Lingen

27

Tôi đã gặp vấn đề tương tự khi phát triển một ứng dụng dịch vụ web đơn giản, trong trường hợp của tôi, tôi phải thêm một trình cắm codehous để có được các thư viện jaxws. Tuy nhiên, maven pom vẫn tiếp tục hỏi về tệp công cụ jar.

Tôi phải nói những nhận xét trên là chính xác, bạn có thể đưa mục nhập dưới đây vào tệp pom:

<dependency>
   <groupId>com.sun</groupId>
   <artifactId>tools</artifactId>
   <version>1.6</version>
   <scope>system</scope>
   <systemPath>C:\Program Files\Java\jdk1.6.0_29\lib\tools.jar</systemPath>
 </dependency>

Nhưng, điều gì sẽ xảy ra khi bạn phải triển khai đến một phiên bản sản xuất? Bạn có thể thay thế đường dẫn bằng một tham chiếu đến một biến môi trường hệ thống nhưng điều đó vẫn không ổn, ít nhất là đối với tôi.

Tôi đã tìm thấy một giải pháp khác trong nhận xét của StackOverflow:

Maven 3 Phần mềm sự cố

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>${struts2.version}</version>
    <exclusions>
        <exclusion>
            <artifactId>tools</artifactId>
            <groupId>com.sun</groupId>
        </exclusion>
    </exclusions>
</dependency>

Họ đề xuất bao gồm một câu lệnh loại trừ cho tool jar và nó hoạt động. Tóm lại: bạn có thể bao gồm quy tắc loại trừ trong phần phụ thuộc của mình và tránh gặp phải vấn đề về tool.jar:

 <exclusions>
            <exclusion>
                <artifactId>tools</artifactId>
                <groupId>com.sun</groupId>
            </exclusion>
        </exclusions>

3
Gợi ý: sử dụng 'mvn dependency: tree' để tìm nơi chèn loại trừ của bạn.
Lars

Việc thêm thẻ loại trừ vào pom.xmlkhông hiệu quả với tôi.
user3437460

25

Tôi đã gặp phải vấn đề tương tự và cách tôi có thể giải quyết nó là thêm vị trí phụ thuộc của tools.jarvào pom.xml. Như vậy:

 <dependency>
   <groupId>com.sun</groupId>
   <artifactId>tools</artifactId>
   <version>1.6</version>
   <scope>system</scope>
   <systemPath>C:\Program Files\Java\jdk1.6.0_29\lib\tools.jar</systemPath>
 </dependency>

Đảm bảo rằng bạn thay đổi <systemPath>nơi đặt tệp tools.jar của bạn.


42
Tôi thực sự khuyên bạn không nên làm điều này - nó giải quyết được vấn đề nhưng không khả dụng cho các nhà phát triển khác hoặc để xây dựng môi trường. Hãy xem các câu trả lời khác, họ dường như làm được trò lừa
Roy Truelove

có lẽ tốt hơn nên thay đổi systemPath thành <systemPath> $ {java.home} /lib/plugin.jar </systemPath>
Guilherme Santos

stackoverflow.com/questions/3080437/… có cách thực hiện việc này theo cách di động.
vorburger

Tôi phát điên khi thay đổi pom.xml của mình như thế này (buộc phiên bản java-md-doclet mới hơn), lỗi biến mất: <dependencyManagement> <dependencies> <dependency> <groupId> com.github.iotaledger </groupId> <artifactId> java- md-doclet </artifactId> <version> 2.1.3 </version> </dependency> </dependencies> </dependencyManagement>
Samir 007

20

Không có câu trả lời nào khác làm được điều đó cho tôi. Nó là gì để kiểm tra "Hệ thống phân cấp phụ thuộc" của pom.xml trong eclipse, nơi đưa ra một bộ lọc 'công cụ' tiết lộ rằng tôi có sự phụ thuộc thực sự vào tools.jar:

Xem Eclipse

Vì vậy, thủ phạm đối với tôi là:

<dependency>
    <groupId>com.github.markusbernhardt</groupId>
    <artifactId>robotframework-selenium2library-java</artifactId>
    <version>1.4.0.7</version>
    <scope>test</scope>
</dependency>

Thêm một loại trừ đã sửa nó:

<dependency>
    <groupId>com.github.markusbernhardt</groupId>
    <artifactId>robotframework-selenium2library-java</artifactId>
    <version>1.4.0.7</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <artifactId>tools</artifactId>
            <groupId>com.sun</groupId>
        </exclusion>
    </exclusions>  
</dependency>

Việc loại trừ dường như không có bất kỳ nhược điểm nào đối với nó.


1
Làm việc cho tôi, vấn đề nảy sinh nâng cấp một codebase java 6 đến 8 java
jasonoriordan

Tôi đã xác định được spotbugs-maven-plugin là thủ phạm của mình, cảm ơn!
timbru31

8

Tương tự với tôi và Windows 7. Tôi đã thêm hai dòng vào eclipse.ini:

-vm 
C:\Program Files\Java\jdk1.6.0_35\bin

Tôi đã thử sử dụng %JAVA_HOME%ở đó, nhưng nó không hoạt động.


2
Lưu ý cho tôi trong tương lai: điều này phải ở trước -vmargsdòng, vì bất kỳ thứ gì trong quá khứ sẽ được hiểu là các args khởi động VM. Vì vậy: ngay trước cái đó!
eis

Giải pháp này sử dụng -vmtrước khi -vmargslà chìa khóa !. Cảm ơn bạn!
Taber

6

Tôi đã giải quyết vấn đề này trong cài đặt Eclipse 4.3 - chỉ bằng cách thêm thư viện JDK vào thư viện của JRE.

Vào windows -> settings -> Java -> JREs đã cài đặt -> chọn JDK và nhấp vào Chỉnh sửa -> nhấp vào Thêm JAR bên ngoài và thêm tools.jar (được đặt trong JDK / lib)


5

Kiểm tra phiên bản JDK trên máy của bạn và pom.xmlcả hai phải giống nhau

<dependency>
    <groupId>sun.jdk</groupId>
    <artifactId>tools</artifactId>
    <version>1.8</version>
    <scope>system</scope>
    <systemPath>C:\Program Files\Java\jdk1.8.0_192\lib\tools.jar</systemPath>
</dependency>

4

Nếu sự cố này vẫn xảy ra, có thể do JDK của phiên bản bằng hoặc lớn hơn 11.

Tệp tools.jarlưu trữ đã bị xóa khỏi thư mục lib trong các JDK đó (xem câu trả lời này cho một câu hỏi tương tự). Trong trường hợp đó, hãy thử sử dụng các phiên bản khác của thư viện, không phụ thuộc vào com.sun:toolsthư viện.


3

Sau khi vật lộn một lúc, cuối cùng tôi đã nhận được điều này để làm việc với eclipse.inithay vì dòng lệnh. Cuối cùng, sau khi đọc tài liệu, tôi nhận ra rằng đối số -vm phải nằm trên một dòng riêng biệt, không được trích dẫn và đứng trước bất kỳ -vmargs nào:

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

2

Tôi gặp lỗi tương tự. Điều này là do JDK không được đặt đúng trong nhật thực. Dưa chuột cần JDK cùng với JRE, vì vậy hãy thêm phụ thuộc bên dưới vào pom.xml của bạn

<dependency>
  <groupId>com.sun</groupId>
  <artifactId>tools</artifactId>
  <version>1.6</version>
  <scope>system</scope>
  <systemPath>C:\Program Files\Java\jdk1.8.0_101\lib\tools.jar</systemPath>
</dependency>

1

Trong tab POM hiệu quả của các tệp pom, tôi thấy đường dẫn dẫn xuất sau: C:\Program Files\Java\jre6/../lib/tools.jarvà tôi nghĩ đó không phải là đường dẫn hợp lệ trong Windows. Tôi đã thử sao chép tools.jar trong thư mục jre6 / lib cũng như trong Java / lib mà không thành công.

Giá trị "C: \ Program Files \ Java \ jre6" đến từ sổ đăng ký

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6.0_30
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6

Và đặt khóa JavaHome thành nơi cài đặt jdk JRE của bạn. Sau đó, tất cả các lỗi trình biên dịch đã biến mất.

Cài đặt lại JDK không khắc phục được sự cố. Đặt biến môi trường hệ thống JAVA_HOME hoặc java.home không giúp được gì.

Một giải pháp thay thế khác mà tôi đã thấy là thêm phần phụ thuộc với đường dẫn bên phải trong mỗi tệp pom xml, nhưng các mẫu playn có rất nhiều tệp khiến bạn phải chỉnh sửa một cách vô lý.

Đây là kết quả POM hiệu quả, cho thấy con đường SAI!

 <dependency>
      <groupId>com.sun</groupId>
      <artifactId>tools</artifactId>
      <version>1.6</version>
      <scope>system</scope>
      <systemPath>C:\Program Files\Java\jre6/../lib/tools.jar</systemPath>
      <optional>true</optional>
    </dependency>

1

Thêm phụ thuộc này trong tệp pom.xml. Hy vọng điều này giúp đỡ.
Trong thuộc <systemPath>tính, bạn phải viết đường dẫn jdk lib của mình ..

    <dependency>  
          <groupId>com.sun</groupId> 
           <artifactId>tools</artifactId>
        <version>1.4.2</version>
        <scope>system</scope>
        <systemPath>C:/Program Files/Java/jdk1.6.0_30/lib/tools.jar</systemPath>
        </dependency> 

1

Đã kết thúc bằng cách sử dụng bản sửa lỗi eclipse.ini:

openFile
-vm (Your Java Home JDK here)

Ví dụ -vm C:\Java\JDK\1.6,.

Cũng phải thay đổi JRE thành JDK:

Trong IDE Eclipse, hãy truy cập:

  1. Window -> Preferences -> JRE đã cài đặt
  2. Nhấp vào Thêm (để tìm JRE mới)
  3. Chọn JVM tiêu chuẩn -> tiếp theo
  4. Click vào Directory để định vị JRE home, đặt JDK_INSTALL_LOCATION là xong.
  5. Đi tới Thuộc tính của dự án java của bạn -> Đường dẫn xây dựng Java -> Thư viện -> chọn JRE -> Chỉnh sửa -> chọn JRE mặc định của Workspace -> kết thúc
  6. Làm sạch toàn bộ không gian làm việc với dự án -> sạch.

Tất cả các phiên bản Windows của Eclipse IDE đều gặp sự cố này. Tất cả các IDE Eclipse dựa trên Ubuntu không bị ảnh hưởng đối với chúng tôi. Vì vậy, chúng tôi đã sử dụng phương pháp này trên các phiên bản Windows và nó khắc phục được sự cố của chúng tôi. Đảm bảo thêm dấu ngắt dòng sau -vm, đặt đường dẫn Java SDK trên dòng nect và đặt tất cả -vmcờ mới được thêm vào trước --vmargstrong eclipse.initệp.
tom_mai78101

1

Như các áp phích khác đã nêu vấn đề ở đây liên quan đến JRE mà eclipse đang sử dụng không thể tìm thấy bình công cụ. Tôi đã giải quyết vấn đề bằng cách đi theo một hướng hơi khác so với những gì đã nêu ở trên, và đó là do cách các dự án và môi trường của tôi.

Eclipse 4.5 yêu cầu ít nhất Java 7 cho thời gian chạy, vì vậy tôi đã thiết lập hệ thống của mình để sử dụng Java 8 JRE có tại C: \ java \ jre1.8.0_45.

Tiếp theo, tôi đang sử dụng tệp POM giả định rằng tôi đang chạy với Java 6 JDK.

  <profiles>
    <profile>
      <id>default-profile</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <file>
          <exists>${java.home}/../lib/tools.jar</exists>
        </file>
      </activation>
      <properties>
        <toolsjar>${java.home}/../lib/tools.jar</toolsjar>
      </properties>
    </profile>
    <profile>
      <id>osx_profile</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <os>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <toolsjar>${java.home}/../Classes/classes.jar</toolsjar>
      </properties>
    </profile>
  </profiles>

  <dependencies>
    <dependency>
      <groupId>com.sun</groupId>
      <artifactId>tools</artifactId>
      <version>1.6.0</version>
      <scope>system</scope>
      <systemPath>${toolsjar}</systemPath>
    </dependency>
  </dependencies>

Tôi không được phép thay đổi tệp POM, vì vậy tôi đã phải thực hiện một số thao tác khó hiểu. Tôi đã sao chép tools.jar từ Java 6 JDK của mình, tạo thư mục C: \ java \ lib và dán nó vào đó. Sau đó, tôi khởi động lại nhật thực và làm sạch dự án của mình. Và lỗi VOILA đã biến mất.

Đó không phải là một giải pháp thanh lịch và tôi nghĩ rằng giải pháp thích hợp sẽ là thay đổi cách thiết lập POM, nhưng vì tôi không thể làm được, điều này hoạt động.


0

Tôi đã gặp vấn đề tương tự trên Windows 7 và Eclipse 3.7, tôi đã cố gắng khắc phục bằng cách khởi động

eclipse.exe -vm "D: \ JDK6 \ bin"

Bạn có thể bắt đầu một cmd và khởi chạy eclipse như vậy hoặc bạn có thể chỉnh sửa phím tắt của mình và thêm -vm "D: \ JDK6 \ bin" làm đối số trong "phần mục tiêu".

Như một phụ chú, tôi cũng đã thử thêm -vm "D: \ JDK6 \ bin" vào eclipse.ini nhưng không hoạt động. Và việc thêm JRE6 sẽ không hoạt động vì nó KHÔNG chứa tools.jar trong thư mục "lib". Chỉ JDK làm.


0

Sau khi thử tất cả những điều trên, tôi vẫn gặp sự cố tương tự.

  • Biến môi trường PATH trỏ tới JDK 1.7 \ bin
  • Biến môi trường JAVA_HOME của tôi đã được trỏ đến JDK 1.7
  • Eclipse.ini của tôi có mục nhập javaw -vm trỏ đến JDK 1.7
  • Tùy chọn nhật thực của tôi có JDK 1.7 làm JRE được cài đặt.
  • Đường dẫn xây dựng dự án của tôi đã sử dụng JDK 1.7.

Sau đó, tôi đã thử những điều sau đây,

  • Mở dấu nhắc lệnh và nhập java -version. Nó cho tôi xem phiên bản JRE 1.8.

  • Mở dấu nhắc lệnh và đi đến vị trí của thư mục bin JDK 1.7 và nhập java -version. Lần này nó hiển thị đúng 1.7.

Sau đó, sau khi tìm hiểu ở một vài nơi, tôi thấy rằng ngoài các vị trí trên còn có các vị trí bổ sung cho thời gian chạy Java.

Đăng ký

Ngoài ra còn có một khóa đăng ký trong đó vị trí JRE được chỉ định trong

HKLM \ Software \ Javasoft \ Phiên bản

Tôi đã thay đổi các mục ở đây để trỏ đến JDK 1.7

Dữ liệu chương trình

Thư mục "C: \ ProgramData \ Oracle \ Java \ javapath" có trong biến môi trường PATH và chứa các phím tắt cho java, javaw, v.v ... Mục tiêu cho các phím tắt này đều là JRE 1.8. ( Tôi nghĩ đây là vấn đề chính ) Tôi đã thay đổi các phím tắt để trỏ đến đúng exe của JDK.

Khi tất cả những điều này đã được thực hiện. Tôi đã mở eclipse, tất cả các lỗi jdk.tools pom.xml đã biến mất.


0

Tôi gặp sự cố này và hóa ra JBossDevStudio 9.1 trên Windows là một chương trình 32 bit. Eclipse, và do đó là JBossDevStudio, không hoạt động với loại JVM sai. Nhật thực 64 bit cần JVM 64 bit, nhật thực 32 bit cần JVM 32 bit. Do đó, cấu hình Eclipse để chạy với JDK 64-bit đã cài đặt của tôi không hoạt động.

Cài đặt JDK 32 bit và chạy Eclipse từ đó đã giải quyết được vấn đề.

Ít nhất đối với một trong các dự án của tôi, một dự án khác mà tôi đã cố gắng định cấu hình JDK thời gian chạy trong thuộc tính dự án Eclipse vẫn bị hỏng.



0

Trong trường hợp của tôi, tôi đang thực hiện Bản dựng Maven từ Cấu hình chạy Eclipse. Ngay cả sau khi thay đổi cấu hình JRE mặc định để trỏ đến thư mục cài đặt JDK, sự cố vẫn không được khắc phục đối với tôi. Lý do là có một tab JRE trong Cấu hình Maven Build - Run (xem hình bên dưới). Và nó vẫn chỉ đến cài đặt JRE của tôi. Tôi đã thay đổi nó để trỏ đến cài đặt JDK và sau đó chạy Bản dựng Maven. Lần này, nó đã hoạt động. nhập mô tả hình ảnh ở đây


0

Hãy hiểu tại sao sự cố này xảy ra:

$ mvn -version

Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T20: 00: 29 + 01: 00) Trang chủ Maven: C: \ Program Files \ Apache \ maven-3.6.1 Phiên bản Java: 1.8.0_221, nhà cung cấp: Oracle Corporation, thời gian chạy: C: \ Program Files \ Java \ jre1.8.0_221 Ngôn ngữ mặc định: en_GB, mã hóa nền tảng: Cp1252 Tên hệ điều hành: "windows 10", phiên bản: "10.0", Arch: "amd64", family: "windows"

Lệnh Maven "mvn -version" trả về đầu ra trên.

Chúng ta có thể thấy maven lấy đường dẫn thời gian chạy java là "C: \ Program Files \ Java \ jre1.8.0_221" nếu bạn không chỉ định biến môi trường JAVA_HOME. Và sau đó maven giả định đường dẫn này là JAVA_HOME. Đó là lý do tại sao khi xây dựng ứng dụng từ dấu nhắc lệnh hoặc bất kỳ IDE nào, maven sẽ tìm tệp tools.jar trong đường dẫn "% JAVA_HOME% .. \ lib \ tools.jar".

tools.jar có trong đường dẫn JDK, vì vậy chúng ta cần đề cập đến điều này với maven trước khi sử dụng nó. Ngày nay máy móc được xây dựng với jre đã có sẵn, nhưng jdk chỉ được yêu cầu để phát triển. Đây có thể là lý do tại sao maven tự động chọn đường dẫn của jre.

Để được trợ giúp thêm, vui lòng đọc mã mvn.cmd có trong đường dẫn cài đặt maven.


0

Vấn đề là hệ thống không thể tìm thấy tệp tools.jar

Vì vậy, trước tiên hãy kiểm tra xem tệp có ở đó trong cài đặt JDK của thư mục hay không.

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

Tạo mục nhập dưới đây trong POM.xml như được chỉ đúng bởi những người khác

<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.6</version>
<scope>system</scope>
<systemPath>C:\Program Files\Java\jdk1.8.0_241\lib\tools.jar</systemPath>
</dependency> 

sau đó Thực hiện theo các bước bên dưới cũng để loại bỏ sự cố

1) Nhấp chuột phải vào dự án của bạn

2) Nhấp vào Đường dẫn xây dựng

Như hình bên dưới, chọn JRE mặc định của không gian làm việc và nhấp vào kết thúc.

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


0

Thay đổi 'JRE đã cài đặt' trong 'Tùy chọn -> Java -> JRE đã cài đặt' thành JDK home phù hợp với tôi.

FYI - Đang sử dụng JDK 1.8.


-1

Nếu bạn đang sử dụng openjdk thì bạn cần cài đặt gói openjdk-6-sdk.


-1

Thay đổi vị trí tương đối của ${java.home}/../lib/tools.jarđường dẫn C:\Program Files\Java\jdk1.6.0_29\lib\tools.jarcông trình tuyệt đối đối với tôi.

Bạn chỉ nên thay đổi nó trong playn/pom.xml.

Bây giờ đối với các mẫu playn, Vladiator đã đúng, có quá nhiều tệp pom để thay đổi.

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.