2012-04-25 20 views
10

में कोई com.sun.tools.javac नहीं, मैं विंडोज 7 64-बिट में जेडीके 7 और एक्लिप्स इंडियागो का उपयोग कर रहा हूं। मैंने पर्यावरण परिवर्तनीय JAVA_HOME को F: \ JDK7 पर सेट किया है और पथ में% JAVA_HOME% \ bin जोड़ें।जेडीके 7

com.sun.tools.javac.Main m1 = new com.sun.tools.javac.Main(); 
m1.compile(source); 

त्रुटि मैं:

Type com.sun.tools cannot be resolved to a type

क्यों नहीं com.sun.tools है यह मेरे नमूना कोड है? समस्या क्या है ?

enter image description here

उत्तर

25

ऐसा लगता है कि आप ग्रहण का उपयोग कर रहे हैं। डिफ़ॉल्ट रूप से ग्रहण केवल जेडीई जार आयात करता है, जेडीके से नहीं।

समाधान 1:

  1. जाओ वरीयताओं ग्रहण करने के लिए (Windows पर: विंडो -> प्राथमिकताएं)
  2. ओपन वरीयता जावा -> स्थापित JREs
  3. अपने JRE और प्रेस संपादित
  4. का चयन करें
  5. उपयोग tools.jar शामिल करने के लिए "बाहरी जार जोड़ें" (JDK_HOME में पाया/lib)

समाधान 2:

संपादित अपनी परियोजना का निर्माण पथ और एक बाहरी पुस्तकालय जोड़ें: tools.jar/lib

+0

बाद मैं के रूप में आप said.There एक और त्रुटि है किया jdk1.7.0 \ lib \ tools.jar \t कंपाइलर.जावा \t/छविजे/स्रोत/आईजे/प्लगइन \t लाइन 58 \t जावा समस्या ' – huoxudong125

+1

ग्रहण में आपको कंपाइलर सेटिंग्स की जांच करें। आपके पास शायद कुछ नियम हैं कि प्रतिबंधित एपीआई त्रुटियों के रूप में रिपोर्ट की जानी चाहिए (विंडो -> प्राथमिकताएं -> जावा -> कंपाइलर -> त्रुटियां/चेतावनियां "बहिष्कृत और प्रतिबंधित API" के बारे में अनुभाग देखें) –

7

आप JavaCompiler API का उपयोग कर के बजाय javac सीधे कॉल करने के लिए जो tools.jar एपीआई में है अगर आप इसे उपयोग आप के लिए यह जोड़ना होगा attemtping से बेहतर कर रहे हैं।

+0

आपके जेडीके के 'lib' के तहत। –

+0

मैं वास्तव में पुरानी स्टाइल कोड संकलित करने जा रहा हूं। आप वैसे भी सही हैं। 'विवरण \t संसाधन \t पथ \t स्थान \t प्रकार पहुँच प्रतिबंध: निर्माता मुख्य() की आवश्यकता पुस्तकालय सी पर प्रतिबंध के कारण सुलभ नहीं है: \ Program Files \ जावा \ धन्यवाद – linker

0

javac JDK_HOME में पाया JDK बिन निर्देशिका में है, लेकिन JRE बिन नहीं।

मैं एक ऐसी ही समस्या थी और यह

C:\Program Files\Java\jre1.8.0_60 instead of 
C:\Program Files\Java\jdk1.8.0_60 

पता चला कि गलती से मैं JRE बजाय JDK, यानी करने के लिए अपने JAVA_HOME चर निर्धारित किया था, क्योंकि मैं "पता था कि" यह है कि मैं सही नकल की थी निर्देशिका का नाम, मुझे उन दो अलग-अलग पात्रों को देखने और समस्या को ठीक करने के लिए उम्र लग गई।

संबंधित मुद्दे