2012-06-20 15 views
65

jdk.tools:jdk.tools:jar:1.6 मैं क्लाउडेरा के org.apache.hadoop आयात करने के लिए कोशिश कर रहा हूँ: Hadoop-ग्राहक: 2.0.0-cdh4.0.0from cdh4 maven repo में ग्रहण 3.81 में एक Maven परियोजना, m2e प्लगइन, दैवज्ञ की JDK 1.7.0_05 साथ Win7 पर का उपयोग करBuiding Hadoop - गुम विरूपण साक्ष्य

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-client</artifactId> 
    <version>2.0.0-cdh4.0.0</version> 
</dependency> 

हालांकि, मैं निम्नलिखित त्रुटि मिलती है:

The container 'Maven Dependencies' references non existing library 'C:\Users\MyUserId\.m2\repository\jdk\tools\jdk.tools\1.6\jdk.tools-1.6.jar' 

अधिक विशिष्ट, Maven कहा गया है कि निम्नलिखित विरूपण साक्ष्य

गुम है
Missing artifact jdk.tools:jdk.tools:jar:1.6 

इसे कैसे हल करें?

उत्तर

83

jdk.tools:jdk.tools (या com.sun:tools, या जो भी आप इसे नाम दें) एक जेएआर फ़ाइल है जो जेडीके के साथ वितरित की जाती है। आम तौर पर आप इस तरह की परियोजनाओं maven में जोड़ें:

<dependency> 
    <groupId>jdk.tools</groupId> 
    <artifactId>jdk.tools</artifactId> 
    <scope>system</scope> 
    <systemPath>${java.home}/../lib/tools.jar</systemPath> 
</dependency> 

देखें, Maven FAQ for adding dependencies to tools.jar

या, आप मैन्युअल रूप से का उपयोग कर स्थानीय भंडार में tools.jar स्थापित कर सकते हैं:

mvn install:install-file -DgroupId=jdk.tools -DartifactId=jdk.tools -Dpackaging=jar -Dversion=1.6 -Dfile=tools.jar -DgeneratePom=true 

और उसके बाद की तरह इसे संदर्भ क्लौडेरा ने इसका उपयोग किया:

<dependency> 
    <groupId>jdk.tools</groupId> 
    <artifactId>jdk.tools</artifactId> 
    <version>1.6</version> 
</dependency> 
+7

शायद यह जोड़ना चाहें कि आपके maven कमांड को आपके jdk (संस्करण 6)/lib फ़ोल्डर से भागने की आवश्यकता है। –

+1

विंडोज़ पर पूर्ण पथ के लिए: std बैकस्लैश को fwd स्लैश द्वारा प्रतिस्थापित करने की आवश्यकता है - सी:/प्रोग्राम फ़ाइलें/जावा/jdk1.7.0_67/lib/tools.jar –

+0

यह बहुत अच्छा है .. लेकिन एमवीएन इंस्टॉल कमांड दे रहा था मैं विफलता का निर्माण करता हूं .. मेरे लिए काम किए गए गुणों के लिए उद्धरण जोड़ना .. – abhijitcaps

32

धन्यवाद पे,

<dependency> 
    <groupId>jdk.tools</groupId> 
    <artifactId>jdk.tools</artifactId> 
    <version>1.7.0_05</version> 
    <scope>system</scope> 
    <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> 
</dependency> 

pom.xml में चाल चल रही थी।

0

शायद सिस्टम जेडीके पैकेज स्थापित करें, लेकिन हो सकता है कि कुछ डेवेल टूल या प्लगइन हो।

मुझे यह समस्या opensuse env के अंतर्गत मिलती है। और मैं स्थापित जावा-1_6_0-openjdk-devel

समस्या disppeared है ..

89

समस्या ग्रहण Maven समर्थन में है, संबंधित सवाल here है।

ग्रहण के तहत, java.home वैरिएबल जेआरई पर सेट किया गया है जिसका उपयोग एक्लिप्स शुरू करने के लिए किया गया था, न कि जेआरई निर्माण। C:\Program Files से डिफ़ॉल्ट सिस्टम जेआरई में जेडीके शामिल नहीं है इसलिए tools.jar नहीं मिला है।

मुद्दा आप eclipse.ini को कुछ इस तरह जोड़कर ग्रहण JDK से JRE का उपयोग शुरू करने की जरूरत है ठीक करने के लिए (-vmargs से पहले !):

-vm 
C:/<your_path_to_jdk170>/jre/bin/server/jvm.dll 

फिर Maven निर्भरता ताज़ा (Alt-F5) (बस परियोजना को ताज़ा करना पर्याप्त नहीं है)।

+7

धन्यवाद। पाठकों के लिए बस एक छोटी टिप्पणी: याद रखें कि '-vm' और वास्तविक पैरामीटर मान के बीच लाइन ब्रेक आवश्यक है। –

+1

बस ऐसा हुआ था जहां एक्लिप्स स्वयं [jdk] \ jre \ bin \ javaw.exe' का पता लगा रहा था, और जब इस तरह चलाया जाता है, तो मैवेन tools.jar का पता लगाने में असमर्थ है। मेवेन के लिए '[jdk] \ bin \ javaw.exe' का उपयोग करके चलाने के लिए एक्लिप्स को स्पष्ट रूप से बदलने की आवश्यकता है, जिसे यह 'com.sun: tools: 1.8' jar – Alex

+1

कहता है, उसे ठीक से ढूंढने के लिए मुझे क्या कहना है: @Alex का उपयोग करें: जेडीके बिन, eclipse.ini में '-vm' के लिए जेआरई बिन नहीं। @rustyx शो [jdk_path]/** jre **/bin और मेरे लिए पथ दिखाता है, यही वजह है कि उपकरण खोजने में मेरी विफलता हुई .jar - हालांकि मैंने javaw.exe को इंगित किया, डीएल नहीं। जब मैंने इसे 'सी:/प्रोग्राम फ़ाइलें/जावा/जेडीके 1.8.0_51/बिन/javaw.exe' में बदल दिया और ग्रहण शुरू किया, Alt-F5, और त्रुटि चली गई। मुझे यह जानकर आश्चर्य हुआ कि जेडीके में अलग-अलग चेक-रकम के साथ दो अलग-अलग जाव निष्पादन योग्य हैं। –

0

क्योंकि मैं तो बस केवल JREJDK साथ स्थापित नहीं मैं भी इस समस्या का सामना करना पड़ा। तो, jdk.tools के लिए निर्भरता जोड़ना मेरे लिए ठीक नहीं हो सकता क्योंकि उपकरण।जार मेरे $ {JAVA_HOME}/lib/ निर्देशिका पर मौजूद नहीं था।

अब मैंने इसे ठीक करने के लिए JDK डाउनलोड और स्थापित किया है।

0

अपने ग्रहण में स्थापित जेआरई के सेट को बदलें। \ Program Files \ जावा \ jre7

+0

से गायब हो गई, इससे मदद नहीं मिलेगी। – rustyx

-3

ठीक है, यदि आप Windows ओएस

उपयोग कर रहे हैं: विंडो> Preferences> जावा> स्थापित JREs, JRE के स्थान पर% JAVA_HOME%/JRE, लेकिन सी की तरह कुछ नहीं बदल
  1. जाओ सेल्सियस के लिए: \ Program Files \ जावा \ jdk1.8.0_40 \ lib

  2. यकीन tools.jar बनाओ मौजूद है (JDK संस्करण आप के लिए अलग हो सकता है) (अन्यथा इसे डाउनलोड)

  3. कॉपी इस पथ "C: \ Program Files \ जावा \ jdk1.8.0_40"

  4. pom.xml में

    <dependency> 
    <groupId>jdk.tools</groupId> 
    <artifactId>jdk.tools</artifactId> 
    <version>1.8.0_40</version> 
    <scope>system</scope> 
    <systemPath>C:/Program Files/Java/jdk1.8.0_40/lib/tools.jar</systemPath> 
    </dependency> 
    
  5. के पुनर्निर्माण और चलाने के! बिंगो!

+4

यदि आप अन्य लोगों के साथ काम करते हैं तो अपने पोम में कभी भी इसे जोड़ें :) – Alex

0

यदि jdk.tools .m2 भंडार में मौजूद है।

लापता विरूपण साक्ष्य: jdk.tools ..... ग: फिर भी आप इस तरह त्रुटि कुछ मिलता है .../JRE/..

buildpath- पथ> कॉन्फ़िगर निर्माण में -> पुस्तकालय जेआरई सिस्टम लाइब्रेरी को जेआरई से जेडीके में बदलें।

6

यह मेरे लिए काम किया:

dependency> 
    <groupId>jdk.tools</groupId> 
    <artifactId>jdk.tools</artifactId> 
    <version>1.7.0_05</version> 
    <scope>system</scope> 
    <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> 
</dependency> 
0

मैं अपने एमआर परियोजना में नीचे का उपयोग करें।

<exclusions> 
       <exclusion> 
        <artifactId>jdk.tools</artifactId> 
        <groupId>jdk.tools</groupId> 
       </exclusion> 
</exclusions> 
5

आप tools.jar बिना रह सकते हैं और यह केवल एक श्रृंखलित निर्भरता के रूप में शामिल किया गया है, तो आप इसे हमलावर परियोजना से बाहर कर सकते हैं:

<dependency> 
    <groupId>org.apache.ambari</groupId> 
    <artifactId>ambari-metrics-common</artifactId> 
    <version>2.1.0.0</version> 
    <exclusions> 
     <exclusion> 
      <artifactId>jdk.tools</artifactId> 
      <groupId>jdk.tools</groupId> 
     </exclusion> 
    </exclusions> 
</dependency> 
संबंधित मुद्दे