2014-07-13 13 views
11

मुझे ग्रहण में एक साधारण कोड संकलित करने का प्रयास करने में त्रुटि हो रही है। मैं jre8 का उपयोग कर रहा हूँ।ग्रहण त्रुटि: java.lang.CharSequence को हल नहीं किया जा सकता

उदाहरण के लिए, जब मैं इस कोड को संकलित करने का प्रयास करें:

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.List; 

public class MyProject { 
    public static void main (String args[]) 
    { 
     List<String> myList = new ArrayList<String>(); 

     myList.add("test"); 
     myList.add("test2"); 

     Collections.sort(myList); 
    } 
} 

मैं Collections.sort(myList); पंक्ति में एक त्रुटि मिलती है।

त्रुटि है:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files 

    at project.Principal.main(Principal.java:14) 

मैं पहले से ही ग्रहण पथ का निर्माण खोला है, हटाया JRE सिस्टम लाइब्रेरी [jre8] और इसे फिर से जोड़ दिया। लेकिन काम नहीं किया! मैं क्या कर सकता हूँ? धन्यवाद!

प्रकार java.lang.CharSequence हल नहीं किया जा सकता है:

पुनश्च .: Collections.sort(myList); लाइन ग्रहण में इस त्रुटि को दर्शाता है। यह अनिवार्य रूप से आवश्यक .class फ़ाइलों से संदर्भित है।

+0

आप किस जेडीके का उपयोग कर रहे हैं? –

+0

jdk1.8.0_05 (सीधे फ़ोल्डर से) – felipeek

+2

क्या आपने एक नया वर्कस्पेस बनाने का प्रयास किया है? – JamesB

उत्तर

12

सुनिश्चित करें कि आपका ग्रहण आईडीई जावा 8 का समर्थन करता है:

पहले ग्रहण संस्करण जावा 8 समर्थन किया गया था ग्रहण केपलर SR2 (4.3.2) एक अतिरिक्त पैच के साथ। (देखें: Installing Java™ 8 Support in Eclipse Kepler SR2, और इसी बाज़ार बाज़ार को स्थापित करने की आवश्यकता है: Java 8 support for Eclipse Kepler SR2)।

मेरी राय में आपको latest Eclipse Version पर जाना चाहिए।

लुना एसआर 2 (4.4.2) के साथ कोई अतिरिक्त पैच आवश्यक नहीं है।


सुनिश्चित 1.8 JRE अपने कार्यस्थान में उपलब्ध है:

विंडोज> प्राथमिकताएं: जावा> स्थापित JREs

Installed JREs

यदि यह स्थिति आप एक नया JRE जोड़ सकते हैं नहीं है जोड़ें बटन के साथ।


अपने प्रोजेक्ट

पैकेज Explorer में के लिए सुनिश्चित करें कि JRE System Library == JavaSE-1.8, आप जावा संस्करण देखना चाहिए: यह आप खोलना चाहिए सही नहीं है, तो

Package Explorer

संदर्भ मेनू JRE System Library आइटम और Properties मेनू प्रविष्टि का चयन करें।

JRE System Library - Properties

अपनी परियोजना में आप एक .classpath फ़ाइल (Navigator View प्रयोग करें यदि आप फ़ाइल नहीं दिख रहा है) है, कि ऐसा करना चाहिए इस तरह दिखता है:

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/> 
    <classpathentry kind="output" path="bin"/> 
</classpath> 

अपनी परियोजना के पुनर्निर्माण

प्रोजेक्ट मेनू> साफ ...

सूची से अपनी परियोजना का चयन करें या "सभी परियोजनाओं को साफ" और "एक निर्माण तुरंत शुरू करें"


यह भी देखें:

+0

यह एक पुराना सवाल है, लेकिन मैं आपके उत्तर को अन्य लोगों की मदद करने के लिए सही के रूप में चिह्नित करूंगा। धन्यवाद वैसे भी – felipeek

+0

मुझे एक ही समस्या है। लेकिन मेरा ग्रहण jre1.8.0.45 का उपयोग कर रहा है। लेकिन मुझे अभी भी 'स्ट्रिंगबिल्डर' या 'स्ट्रिंगबफर' कक्षा के साथ समस्या का सामना करना पड़ रहा है। –

+0

"आपको संदर्भ मेनू जेआरई सिस्टम लाइब्रेरी आइटम खोलना चाहिए और गुण मेनू प्रविष्टि का चयन करना चाहिए" मैं यह कैसे कर सकता हूं? – levininja

1

ऐसा इसलिए है क्योंकि सॉट में बाइटकोड पार्सर क्लास। जेस्टएडजेजे जावा क्लास फ़ाइल प्रारूप के उच्च संस्करण का समर्थन नहीं करता है। CONSTANT_MethodHandle, CONSTANT_MethodType और CONSTANT_Invoke निरंतर पूल प्रकार की गतिशील याद आती है। नीचे मेरा समाधान है एक्स प्रश्न:

(1) प्रकार int soot.JastAddJ.BytecodeParser जोड़ें:

private static final int CONSTANT_MethodHandle=15; 
private static final int CONSTANT_MethodType=16; 
private static final int CONSTANT_InvokeDynamic=18; 

(2) 3 वर्गों को जोड़ने पार्स समर्थन करने के लिए: विधि कालिख के parseEntry में

। JastAddJ.BytecodeParser,

CONSTANT_MethodHandle_Info, CONSTANT_MethodType_Info, CONSTANT_InvokeDynamic_Info

जोड़ने स्विच केस ब्लॉक में

अब, सूट सफलतापूर्वक चलाया जा सकता है।

+0

उन स्विच मामलों का क्या अनुमान है? कृपया क्या आप मेरी मदद कर सकते हैं? जावा क्लास फ़ाइल में निरंतर पूल को पार्स करने के लिए – osanger

+0

, आप जावा क्लास फ़ाइल प्रारूप को विस्तार से सीख सकते हैं। –

+0

ty। मैं पहले ही इस मुद्दे को ठीक कर चुका हूं :) – osanger

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