ไม่มีสิ่งประดิษฐ์ com.sun: tools: jar


95

ฉันได้ติดตามบทช่วยสอนการเริ่มต้นใช้งาน แต่ติดขัดหลังจากที่ฉันนำเข้าโครงการ playn โดยใช้ Maven ฉันใช้ Eclipse Indigo ที่ทำงานบน 64 บิต Windows 7

โครงการที่นำเข้าทั้งหมดมีข้อผิดพลาดเดียวกัน:

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

หลังจากสองสามชั่วโมงของการค้นหาฟอรัมฉันได้ลอง:

การติดตั้งล่าสุด Java 1.6.029 เปลี่ยนฉันJAVA_HOMEตัวแปรสภาพแวดล้อมที่จะชี้ไปที่\program files\Java\jdk1.6_029 การเปลี่ยนการตั้งค่า Eclipse Java ของฉันที่จะใช้ jdk1.6_029JRE

ฉันอยากจะทดลองกับ playn แต่ทำไมมีโพสต์สองสามโพสต์ที่ฉันไม่สามารถหาคำตอบที่เป็นเอกฉันท์เกี่ยวกับวิธีแก้ปัญหาได้ บางคนบอกว่า Sun ลบบางอย่างออกจาก 64 บิต jdk บางคนบอกว่าคุณต้องแก้ไขไฟล์ xml ของคุณหลายคนบอกว่าคุณเปลี่ยนของคุณJAVA_HOMEและอีกคนบอกว่าคุณต้องเปลี่ยนตัวเลือก VM สำหรับ Eclipse

ความช่วยเหลือใด ๆ ในการล้างข้อมูลนี้จะได้รับการชื่นชมและอาจเป็นประโยชน์สำหรับหลาย ๆ คนเนื่องจากฉันไม่มีการตั้งค่าแปลก ๆ ที่นี่

(แก้ไข) นี่คือ pom.xml ในโครงการแรก ข้อผิดพลาดแฟล็ก Eclipse ในบรรทัดซึ่งระบุว่า:

<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>

คุณได้รับข้อผิดพลาดเดียวกันกับการเรียกใช้ maven จากบรรทัดคำสั่งหรือไม่?
Raghuram

ฉันเพิ่มไฟล์ pom.xml ฉันขอโทษที่ไม่ทราบวิธีทำอะไรกับ maven โดยใช้บรรทัดคำสั่ง
boldinventions

ปอมเสียแล้ว ไม่มีแท็กบังคับเช่น groupId, artifactId, version ... POM พาเรนต์ยังเป็นเวอร์ชันโมดูลที่ไม่มีใน Maven central ....
Mark O'Connor

คุณแก้ไขมันแล้วหรือยัง? สิ่งนี้ดูเหมือนจะไม่ได้ผลสำหรับฉัน (Windows7-64 bit - jdk1.6)
Ovidiu Latcu

เนื่องจากเป็นปัญหาทั่วไปคุณจะยอมรับคำตอบที่เหมาะกับคุณได้ไหม
รอย Truelove

คำตอบ:


56

ฉันเพิ่งโพสต์คำถามเกี่ยวกับปัญหาเดียวกันนี้และวิธีแก้ไข แต่ฉันจะวาง (และขยาย) ไว้ที่นี่เช่นกันเนื่องจากดูเหมือนจะเกี่ยวข้องมากกว่า

ฉันมีปัญหาเดียวกันเมื่อใช้ Eclipse ใน Windows 7 แม้ว่าฉันจะลบ JRE ออกจากรายการ JRE ในการตั้งค่า Eclipse และเพิ่งมี JDK ที่นั่น

สิ่งที่ฉันต้องทำ (ตามที่คุณกล่าวไว้ในคำถามของคุณ) คือแก้ไขบรรทัดคำสั่งสำหรับทางลัดที่ฉันใช้เพื่อเปิด Eclipse เพื่อเพิ่มอาร์กิวเมนต์ -vm ให้เป็นดังนี้:

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

แน่นอนคุณต้องปรับให้ชี้ไปที่ไดเร็กทอรี bin ของ ติดตั้ง JDK ของคุณ สิ่งนี้ทำให้ Eclipse ทำงานโดยใช้ JDK แทน JRE จากนั้นก็สามารถค้นหาได้tools.jarอย่างถูกต้อง

ฉันเชื่อว่าสิ่งนี้เกี่ยวข้องกับวิธีที่ Eclipse ค้นหา JRE เริ่มต้นเมื่อไม่มีการระบุ ฉันเดาว่ามันน่าจะชอบ JRE มากกว่า JDK (ทำไมฉันไม่รู้) และไปหา JRE ที่เข้ากันได้ตัวแรกที่พบ และถ้ามันออกจากคีย์รีจิสทรีของ Windows เช่นคำตอบของ Vladiat0r แนะนำให้มองหาHKLM\Software\JavaSoft\Java Runtime Environmentคีย์ก่อนแทนที่จะเป็นHKLM\Software\JavaSoft\Java Development Kitคีย์


10
สิ่งนี้ใช้ได้ผลกับเราใน Windows 7 เราต้องแก้ไขทางลัดเพื่อเพิ่มอาร์กิวเมนต์ -vm "... " แทนที่จะใช้ eclipse.ini นอกจากนี้เราต้องนำเข้าโครงการ maven ของเราอีกครั้งในพื้นที่ทำงานก่อนที่ข้อผิดพลาดจะหายไป
Kit Menke

2
เหมือนกันที่นี่ - ไม่มีลูกเต๋ากับ. ini แต่ -vm arg ใน cmdline ใช้งานได้
Roy Truelove

1
ฉันแก้ไขคำตอบเพื่ออธิบายวิธีเปลี่ยน eclipse.init ที่มา: wiki.eclipse.org/Eclipse.ini#-vm_value:_Windows_Example
OGrandeDiEnne

1
เหมือนกันที่นี่ - การเพิ่ม -vm ไปยังทางลัดได้ผลสำหรับฉัน ฉันไม่จำเป็นต้องนำเข้าโครงการของฉันอีกครั้งก็เพียงพอแล้วที่จะสร้างโครงการ / maven / อัปเดต
Łukasz Dumiszewski

1
เพื่อให้มันใช้งานได้ฉันต้องเพิ่ม tot javaw.exeในเส้นทางนั้นด้วย (ดังนั้นเต็ม:) -vm "T:\Program Files\Java\jdk1.8.0_66\bin\javaw.exe";
จาค็อบฟานลิงเงน

27

ฉันมีปัญหาเดียวกันในขณะที่พัฒนาแอปพลิเคชันบริการบนเว็บที่เรียบง่ายในกรณีของฉันฉันต้องเพิ่มปลั๊กโค้ดเพื่อรับไลบรารี jaxws อย่างไรก็ตาม maven pom ยังคงถามเกี่ยวกับไฟล์ jar ของเครื่องมือ

ฉันต้องบอกว่าความคิดเห็นข้างต้นถูกต้องคุณสามารถรวมรายการด้านล่างไว้ในไฟล์ 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>

แต่จะเกิดอะไรขึ้นเมื่อคุณต้องปรับใช้กับอินสแตนซ์ที่ใช้งานจริง คุณสามารถแทนที่เส้นทางด้วยการอ้างอิงตัวแปรสภาพแวดล้อมระบบ แต่ก็ยังดูไม่ดีอย่างน้อยสำหรับฉัน

ฉันพบวิธีแก้ปัญหาอื่นในความคิดเห็น StackOverflow:

ปัญหา Maven 3 Artifact

<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>

พวกเขาแนะนำให้รวมคำสั่งยกเว้นสำหรับโถเครื่องมือและใช้งานได้ ดังนั้นการสรุป: คุณสามารถรวมกฎการยกเว้นไว้ในการอ้างอิงของคุณและหลีกเลี่ยงการมีปัญหา tool.jar:

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

3
คำแนะนำ: ใช้ 'mvn dependency: tree' เพื่อค้นหาตำแหน่งที่จะแทรกการยกเว้นของคุณ
Lars

การเพิ่มแท็กการยกเว้นในpom.xmlไม่ได้ผลสำหรับฉัน
user3437460

26

ฉันพบปัญหาเดียวกันและวิธีที่ฉันสามารถแก้ไขได้คือเพิ่มตำแหน่งการอ้างอิงtools.jarลงในไฟล์pom.xml. ชอบมาก:

 <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>

ตรวจสอบให้แน่ใจว่าคุณได้เปลี่ยนเป็น<systemPath>ที่ตั้งของไฟล์ tools.jar


44
ฉันขอแนะนำอย่างยิ่งว่าอย่าทำเช่นนี้ - มันช่วยแก้ปัญหาได้ แต่ไม่สามารถพกพาไปยังนักพัฒนารายอื่นหรือสร้างสภาพแวดล้อม ดูคำตอบอื่น ๆ ดูเหมือนว่าพวกเขาจะทำเคล็ดลับ
Roy Truelove

อาจจะดีกว่าเปลี่ยนsystemPathเป็น <systemPath> $ {java.home} /lib/plugin.jar </systemPath>
Guilherme Santos

stackoverflow.com/questions/3080437/…มีวิธีการทำแบบพกพา
vorburger

ฉันเปลี่ยน pom.xml ของฉันอย่างบ้าคลั่งเช่นนี้ (บังคับให้ java-md-doclet เวอร์ชันใหม่กว่า) ข้อผิดพลาดจะหายไป: <dependencyManagement> <dependencies> <dependency> <groupId> com.github.iotaledger </groupId> <artifactId> java- md-doclet </artifactId> <version> 2.1.3 </version> </dependency> </dependencies> </dependencyManagement>
Samir 007

22

ไม่มีคำตอบอื่นใดสำหรับฉัน การตรวจสอบ "ลำดับชั้นการอ้างอิง" ของ pom.xml ใน eclipse คืออะไรซึ่งการให้ตัวกรอง 'tools' แสดงให้เห็นว่าฉันมีการพึ่งพาที่แท้จริงกับ tools.jar:

มุมมอง Eclipse

ดังนั้นผู้ร้ายสำหรับฉันคือ:

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

การเพิ่มการยกเว้นได้รับการแก้ไขแล้ว:

<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>

การยกเว้นดูเหมือนจะไม่มีข้อเสียใด ๆ


1
ทำงานให้ฉันปัญหาเกิดขึ้นในการอัปเกรด java 6 codebase เป็น java 8
jasonoriordan

ฉันระบุว่า spotbugs-maven-plugin เป็นตัวการของฉันแล้วขอบคุณ!
timbru31

8

เช่นเดียวกับฉันและ Windows 7 ฉันได้เพิ่มสองบรรทัดในeclipse.ini:

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

ฉันลองใช้ที่%JAVA_HOME%นั่น แต่มันไม่ได้ผล


2
หมายเหตุถึงฉันในอนาคต: สิ่งนี้จะต้องอยู่ก่อน-vmargsบรรทัดเนื่องจากสิ่งที่ผ่านมาจะถูกตีความว่าเป็นอาร์กิวเมนต์เริ่มต้นของ VM ดังนั้น: ก่อนหน้านั้น!
eis

วิธีนี้ใช้-vmก่อนที่-vmargsจะเป็นกุญแจสำคัญ!. ขอขอบคุณ!
Taber

6

ฉันแก้ไขปัญหานี้ในการตั้งค่า Eclipse 4.3 - โดยการเพิ่มไลบรารี JDK ไปยังไลบรารีของ JRE เท่านั้น

ไปที่ windows -> settings -> Java -> ติดตั้ง JREs -> เลือก JDK แล้วคลิก Edit -> คลิก Add External JARs และเพิ่ม tools.jar (อยู่ใน JDK / lib)


5

ตรวจสอบเวอร์ชัน JDK บนเครื่องของคุณและpom.xmlทั้งสองอย่างควรจะเหมือนกัน

<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

หากปัญหานี้ยังคงเกิดขึ้นอาจเป็นเพราะ JDK ของเวอร์ชันเท่ากับหรือมากกว่า 11

tools.jarเก็บได้ถูกลบออกจากโฟลเดอร์ lib ในผู้ JDK (ดูคำตอบนี้จะเป็นคำถามที่คล้ายกัน) ในกรณีนี้ให้ลองใช้ไลบรารีเวอร์ชันอื่นที่ไม่ต้องพึ่งพาcom.sun:toolsไลบรารี


3

หลังจากดิ้นรนอยู่พักหนึ่งในที่สุดฉันก็สามารถใช้งานได้eclipse.iniแทนบรรทัดคำสั่ง หลังจากอ่านเอกสารในที่สุดฉันก็รู้ว่าอาร์กิวเมนต์ -vm ต้องอยู่ในบรรทัดแยกกันไม่มีเครื่องหมายคำพูดและอยู่ข้างหน้า -vmargs ใด ๆ :

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

3

ฉันได้รับข้อผิดพลาดที่คล้ายกัน เนื่องจาก JDK ไม่ได้ถูกตั้งค่าอย่างถูกต้องในคราส แตงกวาต้องการ JDK พร้อมกับ JRE ดังนั้นเพิ่มการพึ่งพาด้านล่างใน pom.xml ของคุณ

<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

ในแท็บ POM ที่มีประสิทธิภาพของไฟล์ pom ฉันเห็นเส้นทางที่ได้รับต่อไปนี้: C:\Program Files\Java\jre6/../lib/tools.jarและฉันคิดว่ามันไม่ใช่เส้นทางที่ถูกต้องใน Windows ฉันพยายามคัดลอก tools.jar ในโฟลเดอร์ jre6 / lib รวมถึงใน Java / lib แต่ไม่ประสบความสำเร็จ

ค่า "C: \ Program Files \ Java \ jre6" มาจากรีจิสทรี

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

และตั้งค่าคีย์ JavaHome เป็นตำแหน่งที่ติดตั้ง jdk JRE ของคุณ จากนั้นข้อผิดพลาดของคอมไพเลอร์ทั้งหมดก็หายไป

การติดตั้ง JDK ใหม่ไม่สามารถแก้ไขได้ การตั้งค่าตัวแปรสภาพแวดล้อมระบบ JAVA_HOME หรือ java.home ไม่ได้ช่วยอะไร

ทางเลือกอื่นที่ฉันเคยเห็นคือการเพิ่มการอ้างอิงด้วยเส้นทางที่ถูกต้องในไฟล์ pom xml แต่ละไฟล์ แต่ playn-samples มีไฟล์จำนวนมากซึ่งเป็นความเจ็บปวดที่ไร้สาระที่ต้องแก้ไข

นี่คือผลลัพธ์ POM ที่มีประสิทธิภาพซึ่งแสดงเส้นทางที่ไม่ถูกต้อง!

 <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

เพิ่มการอ้างอิงนี้ในไฟล์ pom.xml หวังว่าจะช่วยได้
ใน<systemPath>คุณสมบัติคุณต้องเขียนเส้นทาง jdk lib ของคุณ ..

    <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

จบลงด้วยการใช้โปรแกรมแก้ไข eclipse.ini:

openFile
-vm (Your Java Home JDK here)

ตัวอย่างเช่น-vm C:\Java\JDK\1.6.

ต้องเปลี่ยน JRE เป็น JDK ด้วย:

ใน Eclipse IDE ไปที่:

  1. หน้าต่าง -> การตั้งค่า -> ติดตั้ง JREs
  2. คลิกที่เพิ่ม (เพื่อค้นหา JRE ใหม่)
  3. เลือก JVM มาตรฐาน -> ถัดไป
  4. คลิกที่ Directory เพื่อค้นหา JRE home ใส่ JDK_INSTALL_LOCATION และเสร็จสิ้น
  5. ไปที่คุณสมบัติของโปรเจ็กต์ java -> Java build Path -> Libraries -> เลือก JRE -> Edit -> เลือก Workspace default JRE -> เสร็จสิ้น
  6. ทำการล้างพื้นที่ทำงานทั้งหมดด้วยโปรเจ็กต์ -> ล้าง

Eclipse IDE ใน Windows ของเราทั้งหมดมีปัญหานี้ Eclipse IDE ที่ใช้ Ubuntu ทั้งหมดจะไม่ได้รับผลกระทบสำหรับเรา ดังนั้นเราจึงใช้วิธีนี้กับอินสแตนซ์ของ Windows และแก้ไขปัญหาของเราได้ ตรวจสอบเพื่อเพิ่มตัวแบ่งบรรทัดหลังจาก-vmใส่เส้นทาง Java SDK บนเส้น Nect และสถานที่ทั้งหมดที่เพิ่มใหม่-vmธงก่อน--vmargsในeclipse.iniไฟล์
tom_mai78101

1

ตามที่ผู้โพสต์คนอื่น ๆ ได้ระบุว่าปัญหานี้เกี่ยวข้องกับ JRE ที่คราสกำลังใช้ไม่สามารถหาโถเครื่องมือได้ ฉันแก้ไขปัญหาโดยไปในทิศทางที่แตกต่างจากที่ระบุไว้ข้างต้นเล็กน้อยและเป็นเพราะวิธีการดำเนินโครงการและสภาพแวดล้อมของฉัน

Eclipse 4.5 ต้องการ Java 7 เป็นอย่างน้อยสำหรับรันไทม์ดังนั้นฉันจึงมีการตั้งค่าระบบเพื่อใช้ Java 8 JRE ซึ่งอยู่ที่ C: \ java \ jre1.8.0_45

ต่อไปฉันใช้ไฟล์ POM ที่สมมติว่าฉันกำลังทำงานด้วย 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>

ฉันไม่ได้รับอนุญาตให้เปลี่ยนไฟล์ POM ดังนั้นฉันต้องทำ pokery ตลก ๆ ฉันคัดลอก tools.jar จาก Java 6 JDK ของฉันสร้างไดเร็กทอรี C: \ java \ lib และวางที่นั่น จากนั้นฉันรีสตาร์ท eclipse และล้างโปรเจ็กต์ของฉัน และข้อผิดพลาด VOILA จะหายไป

ไม่ใช่วิธีแก้ปัญหาที่หรูหราและฉันคิดว่าวิธีแก้ปัญหาที่เหมาะสมคือการเปลี่ยนวิธีการตั้งค่า POM แต่อย่างที่ฉันไม่สามารถทำได้


1

หากคุณเห็นสิ่งนี้ในระบบปฏิบัติการที่เพิ่งติดตั้ง / อัปเกรดนั่นเป็นเพียงเพราะ JAVA_HOME ไม่ได้รับการตั้งค่าอย่างถูกต้อง

เราจำเป็นต้องตั้งค่า JAVA_HOME ให้ถูกต้อง ตัวอย่างเช่นบน mac: ถ้าฉันต้องการใช้ java เวอร์ชัน 1.8.0_261

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_261`

0

ฉันมีปัญหาเดียวกันใน Windows 7 และ Eclipse 3.7 ฉันสามารถแก้ไขได้โดยเริ่มต้น

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

คุณสามารถเริ่ม cmd และเรียกใช้ eclipse แบบนั้นหรือคุณสามารถแก้ไขทางลัดของคุณและเพิ่ม -vm "D: \ JDK6 \ bin" เป็นอาร์กิวเมนต์ใน "ส่วนเป้าหมาย"

ในฐานะ sidenote ฉันยังพยายามเพิ่ม -vm "D: \ JDK6 \ bin" ใน eclipse.ini แต่ไม่ได้ผล และการเพิ่ม JRE6 จะไม่ทำงานเนื่องจากไม่มี tools.jar ในไดเร็กทอรี "lib" JDK เท่านั้นที่ทำ


0

หลังจากลองทำตามทั้งหมดข้างต้นแล้วฉันยังคงพบปัญหาเดิม

  • ตัวแปรสภาพแวดล้อม PATH ชี้ไปที่ JDK 1.7 \ bin
  • ตัวแปรสภาพแวดล้อม JAVA_HOME ของฉันถูกชี้ไปที่ JDK 1.7
  • eclipse.ini ของฉันมีรายการ javaw -vm ที่ชี้ไปที่ JDK 1.7
  • การกำหนดลักษณะคราสของฉันมี JDK 1.7 เป็น JRE ที่ติดตั้ง
  • เส้นทางการสร้างโครงการของฉันใช้ JDK 1.7

จากนั้นฉันลองทำสิ่งต่อไปนี้

  • เปิดพรอมต์คำสั่งและพิมพ์ java -version มันแสดงให้ฉันเห็น JRE เวอร์ชัน 1.8

  • เปิดพรอมต์คำสั่งและไปที่ตำแหน่งของไดเร็กทอรี bin JDK 1.7 และพิมพ์ java -version คราวนี้แสดงได้ถูกต้อง 1.7

จากนั้นหลังจากขุดไปไม่กี่แห่งฉันพบว่านอกเหนือจากตำแหน่งด้านบนแล้วยังมีตำแหน่งเพิ่มเติมสำหรับรันไทม์ Java

Registry

นอกจากนี้ยังมีคีย์รีจิสทรีที่ระบุตำแหน่ง JRE ไว้ภายใต้

HKLM \ Software \ Javasoft \ Version

ฉันเปลี่ยนรายการที่นี่ให้ชี้ไปที่ JDK 1.7

ข้อมูลโปรแกรม

ไดเร็กทอรี "C: \ ProgramData \ Oracle \ Java \ javapath" มีอยู่ในตัวแปรสภาพแวดล้อม PATH และมีทางลัดไปยัง java, javaw และอื่น ๆ ... เป้าหมายสำหรับทางลัดเหล่านี้คือ JRE 1.8 ทั้งหมด ( นี่ฉันคิดว่าเป็นปัญหาหลัก ) ฉันเปลี่ยนทางลัดเพื่อชี้ไปที่ exe ของ JDK ที่ถูกต้อง

เมื่อทั้งหมดนี้เสร็จสิ้น ฉันเปิด eclipse ข้อผิดพลาด jdk.tools pom.xml ทั้งหมดหายไป


0

ฉันพบปัญหานี้และปรากฎว่า JBossDevStudio 9.1 บน Windows เป็นโปรแกรม 32 บิต Eclipse และทำให้ JBossDevStudio ไม่ทำงานกับ JVM ผิดประเภท 64-bit eclipse ต้องการ JVM 64 บิต 32-bit eclipse ต้องการ JVM แบบ 32 บิต ดังนั้นการกำหนดค่า Eclipse ให้รันด้วย JDK 64 บิตที่ติดตั้งไว้ของฉันไม่ทำงาน

การติดตั้ง JDK 32 บิตและเรียกใช้ Eclipse จากนั้นช่วยแก้ปัญหาได้

อย่างน้อยสำหรับหนึ่งในโครงการของฉันอีกโครงการหนึ่งที่ฉันพยายามกำหนดค่ารันไทม์ JDK ในคุณสมบัติโปรเจ็กต์ Eclipse ยังคงใช้งานไม่ได้


0

ฉันแก้ไขปัญหาโดยถอนการติดตั้ง JRE จากระบบของฉันและออกจาก JDK เท่านั้น การติดตั้ง JDK ใหม่ไม่เพียงพอเนื่องจากตัวติดตั้ง Oracle JDK ติดตั้งทั้ง JDK และ JRE

BTW สำหรับฉันแล้วดูเหมือนว่าข้อผิดพลาดนี้จะทำให้เกิดปัญหา: java.home ของ Eclipse JRE ถูกใช้แทนการสร้าง JRE


0

ในกรณีของฉันฉันกำลังเรียกใช้ Maven Build จาก Eclipse Run Configurations แม้ว่าจะเปลี่ยนการกำหนดค่า JRE เริ่มต้นให้ชี้ไปที่โฟลเดอร์การติดตั้ง JDK แล้วปัญหาก็ยังไม่ได้รับการแก้ไขสำหรับฉัน เหตุผลก็คือมีแท็บ JRE ใน Maven Build - Run Configuration (ดูภาพด้านล่าง) และมันยังชี้ไปที่การติดตั้ง JRE ของฉัน ฉันเปลี่ยนให้ชี้ไปที่การติดตั้ง JDK จากนั้นเรียกใช้ Maven Build คราวนี้มันได้ผล ป้อนคำอธิบายภาพที่นี่


0

มาทำความเข้าใจว่าเหตุใดจึงเกิดปัญหานี้:

$ mvn - รุ่น

Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T20: 00: 29 + 01: 00) Maven home: C: \ Program Files \ Apache \ maven-3.6.1 เวอร์ชัน Java: 1.8.0_221 ผู้จำหน่าย: Oracle Corporation รันไทม์: C: \ Program Files \ Java \ jre1.8.0_221 ตำแหน่งเริ่มต้น: en_GB, การเข้ารหัสแพลตฟอร์ม: Cp1252 ชื่อระบบปฏิบัติการ: "windows 10", เวอร์ชัน: "10.0", arch: "amd64", ตระกูล: "windows"

คำสั่ง "mvn -version" ของ Maven จะแสดงผลเหนือเอาต์พุต

เราจะเห็นว่า maven ได้รับพา ธ รันไทม์ java เป็น "C: \ Program Files \ Java \ jre1.8.0_221" หากคุณไม่ระบุตัวแปรสภาพแวดล้อม JAVA_HOME จากนั้น maven ถือว่าเส้นทางนี้เป็น JAVA_HOME นั่นเป็นเหตุผลที่เมื่อสร้างแอปพลิเคชันจาก command prompt หรือ IDE ใด ๆ maven จะค้นหาไฟล์ tools.jar ในพา ธ "% JAVA_HOME% .. \ lib \ tools.jar"

tools.jar อยู่ในเส้นทาง JDK ดังนั้นเราต้องพูดถึงสิ่งนี้กับ maven ก่อนที่จะใช้ ตอนนี้มีการสร้างเครื่องจักรหนึ่งวันด้วย jre ที่มีอยู่แล้ว แต่ jdk จำเป็นสำหรับการพัฒนาเท่านั้น นี่อาจเป็นเหตุผลว่าทำไม maven เลือก jre path โดยอัตโนมัติ

สำหรับความช่วยเหลือเพิ่มเติมโปรดอ่านรหัส mvn.cmd ที่มีอยู่ในเส้นทางการติดตั้ง maven


0

ปัญหาคือระบบไม่พบไฟล์ tools.jar

ก่อนอื่นให้ตรวจสอบว่ามีไฟล์อยู่ในการติดตั้ง JDKของไดเร็กทอรี

ป้อนคำอธิบายภาพที่นี่

ทำรายการด้านล่างในPOM.xmlตามที่ผู้อื่นชี้ให้ถูกต้อง

<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> 

จากนั้นทำตามขั้นตอนด้านล่างนี้เพื่อลบปัญหา

1) คลิกขวาที่โครงการของคุณ

2) คลิกที่สร้างเส้นทาง

ตามภาพด้านล่างเลือกพื้นที่ทำงานเริ่มต้น JRE และคลิกที่เสร็จสิ้น

ป้อนคำอธิบายภาพที่นี่


0

การเปลี่ยน 'JRE ที่ติดตั้ง' ภายใต้ 'Preferences -> Java -> Installed JRE' เป็น JDK home เหมาะสำหรับฉัน

FYI - กำลังใช้ JDK 1.8


-1

การเปลี่ยนตำแหน่งสัมพัทธ์ของ${java.home}/../lib/tools.jarไปยังเส้นทางสัมบูรณ์ของC:\Program Files\Java\jdk1.6.0_29\lib\tools.jarทำงานสำหรับฉัน

คุณควรจะต้องเปลี่ยนในไฟล์playn/pom.xml.

ตอนนี้สำหรับ playn-samples Vladiator ถูกต้องนั่นคือไฟล์ pom มากเกินไปที่จะเปลี่ยนแปลง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.