IntelliJ आयात का आयोजन


254

क्या IntelliJ में एक संगठित आयात की सुविधा है जैसे कि ग्रहण में है? मेरे पास एक जावा फ़ाइल है जिसमें कई वर्ग अपने आयातों को याद कर रहे हैं। उदाहरण:

package com.test;
public class Foo {
    public Map map;
    public JTable table;
}

एक्लिप्स में मैं ऑर्गनाइज इम्पोर्ट्स का इस्तेमाल कर सकता था और यह अपने आप इंपोर्ट हो जाएगा java.util.Mapऔर दोनों javax.swing.JTable। IntelliJ में मुझे व्यक्तिगत रूप से प्रत्येक वर्ग में जाना है, इसे चुनें, फिर Alt-Enter दबाएं। एक ऑप्टिमाइज़ इम्पोर्ट फ़ीचर है, लेकिन ऐसा लगता है कि सभी मौजूदा आयातों को क्रमबद्ध और विस्तारित कर रहे हैं ।

मैं IntelliJ 10.5 का उपयोग कर रहा हूं।


17
मुझे अभी भी ग्रहण का Ctrl + Shift + O
appbootup

16
क्या आपने Ctrl + Alt + O आज़माया है? यह स्वचालित रूप से किसी भी अनन्य आयात को जोड़ता है और आपको Alt + Enter दबाकर समान आयातों के बीच चयन करने का संकेत देता है। FYI करें, मैं IntelliJ 12 का उपयोग कर रहा हूँ
divesh premdeep

6
Ctrl + Alt + O को छोड़कर कोई ऐसा आयात नहीं करेगा जो वह तय नहीं कर सकता ... उदाहरण के लिए, यदि चुनने के लिए कई आयात हैं (जो मैं यह जानने की कोशिश कर रहा हूं कि उन्हें कैसे चुनना है, क्योंकि मैं नहीं मेरे कीबोर्ड पर उनके द्वारा सुझाया गया चरित्र चिन्ह है), तो यह कहेगा, "अप्रयुक्त आयात नहीं मिला"।
अज़र्सपॉट

जवाबों:


356

Ctrl+ Alt+ O( कोड → आयात आयात करें ... ) वह है जो आप देख रहे हैं, दोनों विंडोज / लिनक्स और मैकओएस कीमैप पर।

यह "ऑप्टिमाइज़" कहता है, लेकिन, यदि ऐसा करने के लिए कॉन्फ़िगर किया गया है, तो यह भी होगा:

  • मौजूदा आयात को व्यवस्थित करें
  • अनावश्यक आयात हटा दें
  • नए आवश्यक आयात जोड़ें
  • मक्खी पर असंदिग्ध आयात जोड़ें

आप " सेटिंग → संपादक → जनरल → ऑटो आयात " के तहत ऑटो-आयात सेटिंग्स को ट्यून कर सकते हैं जैसा कि डेव द्वारा वर्णित है

आप यह भी संशोधित कर सकते हैं कि " सेटिंग्स → संपादक → कोड शैली → जावा → आयात " के तहत आयात ऑटो-ऑर्डर कैसे किए जाते हैं


14
मैं क्षणभंगुर उतार चढ़ाव हो रहा है, शायद भ्रम के कारण। मैंने अपने उत्तर को यह समझाने के लिए अद्यतन किया है कि यह मूल प्रश्न को कैसे संतुष्ट करता है
रयान स्टीवर्ट

4
यह तब काम नहीं करता है जब एक निर्भरता में पैकेज-नाम बदल गए हैं। यहां तक ​​कि जब यह अभी भी असंदिग्ध है, तो मुझे प्रत्येक प्रभावित वर्ग के लिए
क्लासनेम

7
Mac पर यह CTRL + ALT + O है (कम से कम Android Studio 1.0 में)
jlapoutre

9
मुझे यह काफी बेवकूफी भरा लगता है कि विकल्प "मक्खी पर असंदिग्ध आयात जोड़ें" डिफ़ॉल्ट रूप से चेक नहीं किया गया है। कौन इसे खुद से बनाना पसंद करता है, कक्षा द्वारा कक्षा?
टोनि ०7

3
होना चाहिए Settings → Editor → General → Auto Import?
स्टीव पिचर

100

इसके तहत "Settings -> Editor -> General -> Auto Import"स्वचालित आयात के संबंध में कई विकल्प हैं। केवल अस्पष्ट आयात स्वचालित रूप से जोड़े जा सकते हैं; यह विकल्पों में से एक है।


इस उत्तर के लिए पर्याप्त वोट नहीं। हां, @ ryan-stewart का उत्तर पूरी तरह से ओपी के प्रश्न का उत्तर देता है, लेकिन यह उत्तर उस प्रश्न का समाधान प्रदान करता है जिसे ओपी ने नहीं पूछा: मैं इसे हमेशा के लिए कैसे ठीक करूं, न कि मैं इसे एक बार कैसे ठीक करूं।
जोनाथन लैंड्रम

7
अब यह हैSetting > Editor -> General > Auto Import
लकी

मैं तय पर जाँच कहा किclasses
एंड्रिया Bergonzo

यह पैकेज / फ़ोल्डर / प्रोजेक्ट स्तर पर काम नहीं करता है, क्या यह करता है? मैंने प्रोजेक्ट पर एक 'ctrl + alt + o' किया, src, java और किया mvan क्लीन टेस्ट ... मैंने हाल ही में रिफ्लेक्टर के लिए 'सिंबल नहीं मिला'।
पुराने भिक्षु

@ पुराना-भिक्षु यह वह काम करता है जिसके बारे में संपादक जानता है; यह अधिक संभावना है कि रिफ्लेक्टर में कुछ टूट गया है, लेकिन यह कहना असंभव है।
डेव न्यूटन

44

सरल और लघु समाधान मेरे लिए काम किया।

नीचे जाएं File-> Settings-> Editor-> Auto Import-> Java(बाएं पैनल) और नीचे दी गई चीजें बनाएं: " Add unambigious imports on the fly" और " Optimize imports on the fly" के लिए चेक बॉक्स चुनें

इसे देखें।

यहां छवि विवरण दर्ज करें


यह पैकेज / फ़ोल्डर / प्रोजेक्ट स्तर पर काम नहीं करता है, क्या यह करता है? मैंने प्रोजेक्ट पर एक 'ctrl + alt + o' किया, src, java और किया mvan क्लीन टेस्ट ... मैंने हाल ही में रिफ्लेक्टर के लिए 'सिंबल नहीं मिला'।
पुराने भिक्षु

44

के अलावा Optimize Importsऔर Auto Importहै, जो पहले जवाब में द्वारा बताया गया @ डेव-न्यूटन और @ रयान-स्टीवर्ट लिए यहां जाएं:

  • आईडीए <= 13: File menu > Settings > Code Style > Java > Imports
  • IDEA> = 14: File menu > Settings > Editor > Code Style > Java > Imports(संकेत के लिए @ mathias-bader के लिए धन्यवाद!) सेटिंग्स संवाद

वहां आप समूहीकरण और ऑर्डर या आयात, " Class count to use import with '*'", आदि को ठीक कर सकते हैं ।

नोट:
IDEA 13 के बाद से आप IDEA "स्टार्ट पेज" से प्रोजेक्ट डिफ़ॉल्ट सेटिंग्स को कॉन्फ़िगर कर सकते हैं Configure > Project defaults > Settings > ...:। फिर हर नए प्रोजेक्ट में वो डिफ़ॉल्ट सेटिंग्स होंगी: यहां छवि विवरण दर्ज करें


7
इंटेलीज आईडीईए 14 के बाद से, इसके तहत पाया जा सकता हैSettings > Editor > Code Style > Java > Imports
मथियास बैडर


1
स्क्रीन शॉट्स के लिए यश! इसे प्यार करना। एक दृश्य 1,000 शब्दों के लायक है!
एटमॉ 88

42

जुलाई 2015 - मैंने निष्कर्ष निकाला है कि इंटेलीज एकल फ़ंक्शन के साथ आयातों को हल करने का स्वचालित रूप से समर्थन नहीं करता है। "आयात को व्यवस्थित करें" बस अप्रयुक्त आयात को हटा देता है, यह महत्वहीन प्रकारों को हल नहीं करता है। नियंत्रण-अंतरिक्ष एक एकल महत्वहीन प्रकार का समाधान करता है। सभी प्रकार के आयातों को हल करने के लिए एक भी कार्रवाई मौजूद नहीं है।


11
यह मेरा अनुभव रहा है। निराशा होती।
अयाहुस्का 16

1
इसने मुझे भी उलझा दिया। नीचे @ रोहित का समाधान देखें। फ़ाइल -> सेटिंग्स -> संपादक -> सामान्य -> ​​ऑटो आयात -> जावा और सभी तीन विकल्पों की जांच करें जिन्हें उसने हाइलाइट किया है। इसने मेरे लिए काम किया।
कार्ल रॉसमैन

1
अजीब है कि यह स्वीकृत उत्तर है, क्योंकि यह बहुत गलत है। Stackoverflow.com/a/8609200/839646 देखें ।
रयान स्टीवर्ट

1
@RyanStewart यह अस्पष्ट आयात को उसी तरह से हल नहीं करता है जिस तरह से ग्रहण करता है। जब यह अस्पष्ट होगा तो ग्रहण शीघ्र होगा, IntelliJ इसे अनदेखा करें।
स्टीव कुओ

9

उस फ़ाइल पर नेविगेट करें जहाँ आप आयात को व्यवस्थित करना चाहते हैं या केवल पूरे पैकेज पर क्लिक करें या यहां तक ​​कि प्रेस CTRL + ALT + O की तुलना में प्रोजेक्ट पर क्लिक करें


1
यह उत्तर पहले से मौजूद है । आप हो सकता है कि जवाब देने के लिए एक टिप्पणी के रूप में अतिरिक्त जानकारी ( "आप पूरे पैकेज पर क्लिक कर सकते हैं या यहां तक कि CTRL + ALT + हे प्रेस से परियोजना पर क्लिक करें") को जोड़ने पर विचार
ज़ैक Lysobey

9

इंटेलीज 14 में, ऑटो आयात के लिए सेटिंग्स का मार्ग बदल गया है। रास्ता है

इंटेलीज आईडिया-> प्राथमिकताएं-> संपादक-> सामान्य-> ऑटो आयात

इसके बाद ऊपर दिए गए निर्देशों का पालन करें, फ्लाई पर अस्पष्ट आयात जोड़ें पर क्लिक करें

मैं कल्पना नहीं कर सकता कि यह डिफ़ॉल्ट रूप से क्यों सेट नहीं किया जाएगा।


3

मैक के लिए शॉर्टकट: (ctrl + opt + o)


1
नहीं, इसका नियंत्रण + विकल्प + o
दीविवि कैवर्ज़न २५'१५

अकस्मात यह उत्तर वही कुंजी है जो इस प्रश्न में सबसे अधिक मतदान करता है।
डिविडी कैवर्ज़न

2

बस अपने माउस को लापता दृश्य पर ले जाएं और खिड़कियों पर चाबियाँ मारें ALT + ENTER


2

ALT + ENTER ग्रहण की आदत से दूर था, मेरे लिए IDEA में माउस काम नहीं करता था, इसलिए setting>IDESetting>Keymap>Show intention actions and quick-fixesमैंने इसे माउस लेफ्ट क्लिक में बदल दिया, इसने माउस ओवर का समर्थन नहीं किया! लेकिन माउस छोड़ दिया क्लिक ठीक था और मेरे इरादे के सबसे करीब था।


2

मैंने अंत में इस निराशाजनक मुद्दे के चारों ओर एक वैकल्पिक हल बनाया। मैं वर्कअराउंड से पूरी तरह से खुश नहीं हूं, लेकिन यह कुछ भी नहीं से बेहतर है।

असल में, स्रोत कोड पेस्ट करने के बाद और अस्पष्ट आयात तय हो जाते हैं, बस F2अगले संकलक त्रुटि को उजागर करने के लिए दबाएं । यदि वर्तमान त्रुटि एक आयात-लापता त्रुटि है Alt+Enter, तो विकल्प Enterका चयन करने के लिए दबाएं , फिर Importसही आयात चुनें। फिर, F2फिर से दबाएं ।


1

वह प्लगइन स्वचालित रूप से "सेव इम्पोर्ट" एक्शन को फाइल सेव पर करेगा: https://github.com/dubreuia/intellij-plugin-save-actions

स्थापित करने के लिए: "फ़ाइल> सेटिंग्स> प्लगइन्स> रिपॉजिटरी ब्राउज़ करें ...> खोज 'कार्य सहेजें'> श्रेणी 'कोड उपकरण'"। फिर "कार्रवाई को व्यवस्थित करें" सहेजें कार्रवाई को सक्रिय करें।


एक (लापता) सुविधा पर एक उपकरण को देखते हुए एक विचारशील निर्णय के रूप में नहीं माना जा सकता है। यदि प्लगइन काम नहीं करता है, तो वहां बग भरने में संकोच न करें: github.com/dubreuia/intellij-plugin-save-actions/issues
अलेक्जेंड्रे ड्यूब्रेल

5
आप सही हैं, यह सामान्य परिस्थितियों में एक विचारशील निर्णय नहीं है। यह है - हालांकि - एक परम उपकरण से आश्चर्यजनक रूप से लापता बुनियादी सुविधा पर एक जोरदार हताशा। मैंने सफलता के बिना काम करने के लिए इस सरल, आवश्यक सुविधा को प्राप्त करने की कोशिश में 2 घंटे बिताए। और क्या यह बदतर बना दिया, बल्कि डिफ़ॉल्ट रूप से एक सुविधा में बनाया गया है (जैसे कि कैसे ग्रहण ग्रहण करता है) एक प्लगइन वास्तव में इसे प्राप्त करने के लिए लिखा जाना चाहिए! इसकी तरह एक अत्याधुनिक कला और सबसे जटिल जंबो जेट का निर्माण, लेकिन बिना एयर-कंडीशनिंग के, प्रत्येक यात्री को एक पेपर फैन दिया जाता है! ग्रहण में मुझे 1 सेकंड का समय लगा।
ढफिरनज

1
दरअसल, इस प्लग-इन का उपयोग करके इंटेलीज में एक समस्या और कमजोरी को उजागर किया गया। मुझे इस प्लग-इन को अक्षम करना पड़ा क्योंकि यह हर ऑटो-सेव पर इंटेलीज को हाईजैक करता है, इसे अनुपयोगी और धीमा बनाता है। ऐसा इसलिए है क्योंकि यह हर उस प्रकार की सभी क्रियाओं को करने की कोशिश करता है जो मैं कुछ लिखता हूं। यदि ऑटो सेव को किसी तरह बंद किया जा सकता है तो यह प्लग-इन वास्तव में बहुत उपयोगी होगा।
ढफिरनज

0

यदि आप केवल एक आयात (वर्ग नाम लाल रेखांकन) याद कर रहे हैं, तो उस पर माउस को क्लिक करें और होवर करें, और एक नीला सुझाया गया आयात विवरण दिखाई देगा। यदि आप हिट करते हैं, तो इस बिंदु पर Alt + Enter , आयात फ़ाइल में शामिल हो जाएगा और लाल रेखांकन गायब हो जाना चाहिए।


बहुत यकीन है कि यह एक मल्टी-प्लेटफॉर्म फीचर है
Zach Lysobey

0

गोटो हेल्प -> फाइंड एक्शन (इसके लिए शॉर्ट कट है Cntl + Shift + A) और टाइप ऑप्टिमाइज़ इंपोर्ट (इसके लिए शॉर्ट कट है Cntl + Alt + O)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.