2015-08-28 16 views
8

मैं वर्तमान में जावा 7 से जावा 8 में अपना एप्लिकेशन माइग्रेट कर रहा हूं और वर्तमान में मैं वसंत 3.1.6 जार चला रहा हूं। क्या यह जावा 8 के साथ संगत होगा या मुझे स्प्रिंग जार को अपग्रेड करना होगा?जावा 8 वसंत संगतता

मैं समझता हूं कि स्प्रिंग 4x संस्करण में जावा 8 के लिए प्राकृतिक समर्थन है, लेकिन यह समय महत्वपूर्ण है और मैं जितना छोटा कर सकता हूं उतना जार बदलना चाहता हूं।

+1

शायद [यह] (https://stackoverflow.com/questions/24657418/spring-core-3-2-9-java-8) आपकी मदद कर सकता है ... –

+0

यह प्रश्न और उत्तर देखें: http: // stackoverflow.com/questions/30072135/spring-3-2-x-with-java-8 –

+0

धन्यवाद, यह मेरी मदद करता है। तो मुझे बुलेट काटने और वसंत जार अपग्रेड के लिए जाना है – cpkarthic

उत्तर

11

मूल रूप से Spring 3.x संस्करण केवल Java-7 तक समर्थन करते हैं। यदि आप Java-8 पर माइग्रेट करना चाहते हैं तो आपको Spring 4.x संस्करण का उपयोग करना चाहिए।

हालांकि कुछ वसंत रिलीज नोट्स का कहना है कि Spring Framework 3.2.x (-target 1.7 के साथ) JDK 7 के खिलाफ संकलित अनुप्रयोगों या उससे पहले के लिए JDK 8 runtimes पर तैनाती का समर्थन करेंगे। ध्यान दें कि यह JDK 8 का बाइटकोड प्रारूप (लक्ष्य 1.8, लैम्बडास के लिए आवश्यक) का समर्थन नहीं करेगा; कृपया उस उद्देश्य के लिए Spring Framework 4.0 पर अपग्रेड करें।

स्रोत लेख से this लिंक का पालन करें।

-3

जावा 8 और जेवीएम 8 पूरी तरह से जावा के सभी पुराने संस्करणों के साथ संगत है। नए रिलीज पुराने कोड को तोड़ने के लिए जावा यह सुनिश्चित करने के लिए दर्दनाक कदम उठाता है। जावा 7 के लिए आपके द्वारा लिखे गए किसी भी कोड को जावा 8 के साथ संकलित किया जा सकता है, और जावा 7 के लिए आपके द्वारा संकलित कोई भी कोड जेवीएम 8 पर चलाया जा सकता है।

3

नहीं, यह संगत नहीं है। मैंने एक ही मुद्दे में भाग लिया है और कई लोग कहेंगे कि जावा 8 जावा के पुराने संस्करणों के साथ पूरी तरह से पीछे की तरफ संगत है, यह सच नहीं है।

इस सटीक समस्या क्योंकि ConcurrentHashMap की एपीआई 2 जावा विज्ञप्ति के बीच बदल गया है मैं जावा 8.

https://gist.github.com/AlainODea/1375759b8720a3f9f094

साथ जावा 7 लक्षित कोड में भाग का एक बहुत अच्छा explaination है, वसंत टूटता है पर स्टार्टअप और आप

SEVERE: Context initialization failed 
java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentHashMap$KeySetView; 
    at org.apache.catalina.core.ApplicationContext.getInitParameterNames(ApplicationContext.java:368) 
    at org.apache.catalina.core.ApplicationContextFacade.getInitParameterNames(ApplicationContextFacade.java:367) 
    at org.springframework.web.context.support.WebApplicationContextUtils.registerEnvironmentBeans(WebApplicationContextUtils.java:201) 
    at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.postProcessBeanFactory(AbstractRefreshableWebApplicationContext.java:163) 

साथ खत्म हो रहा है, लेकिन वसंत 4.x (यकीन नहीं करता है, तो 3.2 या इसके बाद के काम किया है के रूप में मैं सीधे कूद 4.x करने के लिए)

को उन्नत करने के लिए कोई विकल्प नहीं था