IntelliJ IDEA में डिबगर पोर्ट खोलने में असमर्थ


82

मुझे एक समस्या है कि मैं IntelliJ IDE के साथ डिबग मोड में अपना एप्लिकेशन सेट नहीं कर सकता, लेकिन रन मोड ठीक है।

मेरा ओएस विंडोज 7 है, आईडीई इंटेलीज आईडीईए है, वेब कंटेनर टॉमकैट 6 है। मैंने लंबे समय से कोशिश की है, HTTP पोर्ट और JMX पोर्ट को बदल दिया है, लेकिन यह काम नहीं किया।

जब मैंने IntelliJ के साथ डिबग मोड में ऐप सेट किया, तो यह विफल हो गया और इवेंट लॉग है:

16:05:35 टॉमकट चलाने में त्रुटि: डिबगर पोर्ट खोलने में असमर्थ: java.net.BindException "पहले से ही उपयोग में पता: JVM_Bind"।


डीबगिंग की अनुमति देने के लिए tomcat6 के लिए सामान्य अभ्यास और पोर्ट क्या है? आपको कुछ झंडे / सेटिंग्स को सक्षम करने की आवश्यकता हो सकती है ...
vikingsteve करें

@ लंबी पैदल यात्रा धन्यवाद! टीटी एक सामयिक मामला है, जब मैं अपने कंप्यूटर को पुनरारंभ करता हूं, तो eveything ठीक है। हो सकता है कि कुछ पोर्ट संघर्ष है, लेकिन मुझे नहीं पता कि कौन सा है।
फेंग

कूल :) कुछ उपयोगी उपकरण भी हैं जो यह देखने के लिए कि कौन सा एप्लिकेशन पोर्ट पकड़ रहा है - शायद इस तरह के टूल का उपयोग करके संघर्ष के स्रोत को जल्दी से पहचान सकें। सबसे खराब स्थिति में विंडोज़ टास्क मैनेजर को देखना और tomcat.exe, java.exe आदि को रोकना मदद कर सकता है।
vikingsteve

सावधान रहना चाहिए! यदि आप व्यवस्थापक या रूट नहीं हैं, तो 1024 से नीचे http पोर्ट सेट नहीं करना चाहिए। या तो आपको हमेशा त्रुटि मिलती है "त्रुटि चल रही tomcat: डिबगर पोर्ट खोलने में असमर्थ"
tiramisu

जवाबों:


148

इस मुद्दे की कुंजी डिबगर पोर्ट में है । मुझे वही समस्या हो रही थी, मैं पोर्ट 8081 (मेरा http पोर्ट), 1099 (जेएमएक्स पोर्ट), टॉमकैट शटडाउन पोर्ट, हर java.exe, और अभी भी कुछ भी नहीं सुनकर हर प्रक्रिया को मार रहा था।

बात यह है कि यह डिबगर पोर्ट अलग है। यदि आप एप्लिकेशन चलाते हैं, तो यह उस पोर्ट से होकर गुजरेगा, जिसके पास टॉमकैट कॉन्फ़िगर किया गया है, 8080, 8081 या जो भी हो। लेकिन अगर आप इसे डिबग मोड में चलाते हैं, तो यह एक अलग पोर्ट से गुजरता है।

यदि आप IntelliJ से अपने टॉमकैट कॉन्फ़िगरेशन को संपादित करते हैं, तो अंतिम टैब स्टार्टअप / कनेक्शन है । यहां डिबग मोड के लिए कॉन्फ़िगरेशन देखें , और आप इसका पोर्ट देखेंगे। मेरा 50473 था। मैंने इसे 50472 में बदल दिया, और सब कुछ फिर से काम करना शुरू कर दिया।


12
धन्यवाद, यह काम करता है। और जो लोग पोर्ट को होल्ड करने की प्रक्रिया को बंद करके इसे हल करना चाहते हैं, उनके लिए टास्क मैनेजर-> परफॉर्मेंस-> रिसोर्स मॉनिटर-> नेटवर्क है, आप वहां इस प्रक्रिया को पा सकते हैं।
मैट्रिक्स

4
क्या एक pitty कोई "autoassign अप्रयुक्त बंदरगाह" विकल्प एक्सडी है कि
Gandalf

बहुत बहुत धन्यवाद। - @ टीएम I भी सभी प्रक्रियाओं को मार रहा था।
राज राजेश्वर सिंह राठौर

धन्यवाद, स्टार्टअप / कनेक्शन से पोर्ट को बदलना मेरे लिए था
Csa77

यह अफ़सोस है कि यह अभी भी Intellij 2019.2.3 के साथ हो रहा है। डिबग पोर्ट का परिवर्तन ही एकमात्र तरीका है जिससे मैं काम करने में सक्षम था (मेरी मशीन को रिबूट करने के अलावा)
cakidnyc

55

मेरे लिए, IntelliJ Event Log(दाएं निचले कोने) में लॉग नीचे थे:

Error running EntitmentTooling-Debug: Cannot run program "/path-to/apache-tomcat-8.5.15/bin/catalina.sh" (in directory "path-to/apache-tomcat-8.5.15/bin"): error=13, Permission denied

Error running EntitmentTooling-Debug: Unable to open debugger port (127.0.0.1:58804): java.net.SocketException "Socket closed"

आदेश

$ chmod a+x /path-to/apache-tomcat-8.5.15/bin/catalina.sh

पर्याप्त रूप से मेरे लिए विशेषाधिकारों को बदलने के लिए।


पर देख रहे हैं Event Logकुंजी यहाँ है, पिछले त्रुटि मूल कारण था
yunandtidus

यह सबसे अच्छा जवाब है। अच्छी तरह से काम!
मनोज श्रेष्ठ

धन्यवाद आपका उत्तर कई महीनों के बाद मेरी समस्या का समाधान करता है
सबा सफारी

34

यदि आप खिड़कियों पर हैं, तो आप साझा मेमोरी डिबगिंग पर स्विच करके सॉकेट समस्या को पूरी तरह से बायपास कर सकते हैं।

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


3
इससे मुझे अंत में मदद मिली। इससे पहले, मुझे हर कुछ घंटों में बंदरगाहों को बदलने की जरूरत थी, कभी-कभी यहां तक ​​कि मदद नहीं की ... जावा प्रक्रियाओं को समाप्त करने से भी कुछ नहीं हुआ।
IntelliData

इस सुझाव के लिए बहुत धन्यवाद। साझा की गई मेमोरी में बदलने के बाद IntelliJ एक अन्य मुद्दे पर विफल हो गई (मेरा server.xml दूषित हो गया था)। इसे ठीक किया और वापस परिवहन में चला गया। सब अच्छा।
जैक्स कोअर्ट्स

मेरे मामले में यह बेहद निराशाजनक है क्योंकि इंटेलीज का कहना है कि बंदरगाह का उपयोग करने वाली कोई भी प्रक्रिया पहले से उपयोग में नहीं है। यह विकल्प काम करने लगता है और उम्मीद है कि मैं IntelliJ द्वारा रिपोर्ट की गई इन गैर-मौजूद प्रक्रियाओं को खोजने के लिए नैदानिक ​​उपकरणों का उपयोग करके फिर से समय बर्बाद नहीं करूंगा।
user1445967

इस टिप के लिए धन्यवाद। मेरे मामले में, यह बिना किसी संशोधन के अचानक शुरू हुआ - न तो कोई अपडेट और न ही कोई नया प्रोग्राम इंस्टॉल। IntelliJ का उपयोग करने के महीनों बाद विंडोज 7 रिबूट के बाद। मेरे किसी अन्य कंप्यूटर पर नहीं हो रहा है। और कोई भी प्रोग्राम उस पोर्ट का उपयोग नहीं कर रहा है। मैं एक स्पष्टीकरण खोजना चाहता हूं।
Pere

10

यह मेरे लिए लगातार काम करता है (यह समय-समय पर मेरे साथ होता है, जब मैं एकीकरण के परीक्षणों को चला रहा होता हूं, तो उदाहरण के लिए, मैं इस तरह के पुनरारंभ टॉमकैट करता हूं)

1) उस प्रक्रिया का पता लगाएं जिसमें पोर्ट 1099 खुला है

sudo netstat -anp | grep tcp | grep 1099
cp6       0      0 :::1099                 :::*                    LISTEN      9857/java

2) इसे मार डालो

kill 9857

3) टॉमकैट शुरू करें।


8

मैं विंडोज 7 और इंटेलीजेडिया 14. में एक ही मुद्दा था। मैंने CTRL + ALT + ESc पर जाव प्रक्रियाओं को मार दिया, जावा को खोजकर मार डाला। अब री-रन, एप्लिकेशन फिर से यह ठीक होना चाहिए .. आप इसे कमांड लाइन या शेल (लिनक्स) के साथ भी कर सकते हैं, लेकिन मैंने अपने लिए यह आसान पाया


7

मुझे IntelliJ का उपयोग करते समय एक ही त्रुटि का सामना करना पड़ा है। जब से मैंने IntelliJ के कई उदाहरण शुरू किए हैं। दो उदाहरण शुरू करते समय यह ठीक से शुरू हुआ। हालाँकि, एक और शुरुआत करते समय, यह नीचे त्रुटि दे रहा था।

unable to open debugger port (127.0.0.1:debug-port-number) java.net.socketexception interrupted function call accept failed

मूल रूप से दो स्थान हैं जहां आप IntelliJ में डीबगिंग से संबंधित अपने पोर्ट की जांच कर सकते हैं

  1. जेएमएक्स पोर्ट - आप पा सकते हैं यह है यहाँ छवि विवरण दर्ज करें
  2. स्टार्टअप / कॉन्फ़िगरेशन में, डीबग विकल्प है बस इस पर क्लिक करें। यहाँ छवि विवरण दर्ज करें

क्या जाँच करें : यदि IntelliJ त्रुटि से ऊपर है, तो इसका मतलब है कि उपरोक्त सूचीबद्ध बंदरगाहों में से कोई भी समस्या है। इस खुले ईवेंट लॉग (इसके दाहिने कोने में उपलब्ध) को सत्यापित करने के लिए और सटीक संदेश देखें। इवेंट लॉग में नीचे जैसा संदेश होगा

11:19 PM    Error running 'Tomcat-tp': Address localhost:1098 is already in use

11:19 PM    Error running 'Tomcat-tp': Unable to open debugger port (127.0.0.1:51787): java.net.SocketException "Interrupted function call: accept failed"

समाधान -1 वर्तमान इंटेलीजे के जेएमएक्स पोर्ट की जांच करें जो कि काम करने वाले के साथ शुरू नहीं हो रहा है और यह सत्यापित करें कि जेएमएक्स पोर्ट को इंटेलीजे उदाहरण या आपके मशीन में चल रहे सॉफ़्टवेयर में से कोई भी इस पोर्ट का उपयोग नहीं कर रहा है।

समाधान -2 यदि JMX को डुप्लिकेट नहीं किया गया है, तो अपने डिबग पोर्ट को सत्यापित करें, सभी IntelliJ उदाहरण में जाँच करें और परिवर्तन करें।

निश्चित रूप से या तो JMX या डिबग पोर्ट में केवल JMX और डीबग पोर्ट का उपयोग करने के लिए समस्या है और यह काम करेगा।

आशा है कि यह किसी की मदद करेगा।


1
धन्यवाद। मेरे पास हमेशा IntelliJ के कई उदाहरण हैं।
cs_pupil

धन्यवाद! भले ही मुझे अपने डिबगर पोर्ट के बारे में एक त्रुटि प्राप्त हुई, समस्या वास्तव में डुप्लिकेटेड जेएमएक्स पोर्ट थी।
फ्लोरियन विचर

5

मैंने इस तरह से इस मुद्दे को हल किया।

  1. मैंने सभी java.exe प्रक्रियाओं को मारने की कोशिश की लेकिन यह बेकार थी।
  2. फिर मैंने टॉमकैट सर्वर को हटाने की कोशिश की
  3. मैंने परियोजना को फिर से तैनात किया और परियोजना को फिर से शुरू किया और यह काम किया।

अधिक जानकारी के लिए ये लिंक देखें:

टॉमकैट को हटाएं टॉमकैट को हटाएं

एक नया Tomcat जोड़ें एक नया Tomcat जोड़ें


मैंने अपने तरीके से मुद्दे को हल किया। इसको दूसरों के साथ क्यों नहीं बाँट लेते?
मठाधीश

माफ़ करना। ऐसा लग रहा था कि आप एक नया सवाल पूछ रहे थे। वर्तमान काल (" मेरे पास एक ही मुद्दा है ") के कारण उलझन में पड़ गया
adiga

वह ठीक है। जवाब पर एक लंबित संपादन को मंजूरी दी जो सभी व्याकरणिक गलतियों को ठीक करना चाहिए।
अदिगा

3

डिबग करते समय मुझे यह मुद्दा मिला: इसके साथ काम किया

  1. मेरे टोम्कट http पोर्ट 8082 को 8083 में बदलने की कोशिश की (इन्टेलीजे पर डिबग कॉन्फ़िगरेशन में और टॉमकैट में-> conf-> server.xml भी)
  2. जेएमएक्स पोर्ट को 1099 से 1009 में बदलने की कोशिश की।
  3. डिबग कॉन्फ़िगरेशन में स्टार्टअप / कनेक्शन में डिबग पोर्ट बदलने की कोशिश की
  4. टास्कमैन-> प्रक्रियाओं में सभी जावा प्रक्रियाओं को मार डाला।

3

मेरे पास यह सटीक संदेश था।

कारण यह था कि कुछ आईडीई (मैं एक्लिप्स और इंटेलीज का उपयोग करता हूं) टॉमकैट सर्वर को बंद करने में विफल रहा। या ऐसा करने से पहले दुर्घटनाग्रस्त हो सकता है।

समाधान के लिए नेविगेट करने C:\...\apache-tomcat-xxx\binऔर चलाने के लिए था shutdown


2

मेरे पास एक ही मुद्दा है, क्योंकि मेरे कंप्यूटर का DNS 127.0.0.1 लोकलहोस्ट है। जब मैं अपनी होस्ट फ़ाइल में 127.0.0.1 लोकलहोस्ट जोड़ता हूं, तो यह ठीक हो जाता है।


1
मुझे भी यही समस्या थी और इस समाधान ने भी मेरे लिए चाल चली। वैकल्पिक रूप से, होस्ट नाम "Localhost" के बजाय Intellij Debug कॉन्फ़िगरेशन में IP प्रदान करें।
Martin_wun

2

इसके कई कारण हैं।
- डिबगर पोर्ट के साथ समस्या हो सकती है --- कृपया इसे बदलने के लिए समाधान करें ( TM द्वारा उत्तर दिया गया है )
- intellij cache के साथ कुछ समस्या हो सकती है - कैश को फिर से शुरू करें और इसे फिर से शुरू करें ( फेंग स्मिथ द्वारा उत्तर दिया गया )
- हो सकता है किसी अन्य पोर्ट की समस्या, जैसे JMX, AJP --- कृपया इन पोर्ट नंबरों को भी बदल दें।
मैं इसे टिप्पणी के रूप में जोड़ना चाहता था लेकिन पर्याप्त प्रतिनिधि नहीं था


2

मेरे लिए काम करने वाली एकमात्र चीज़ विंडोज पर टास्क मैनेजर में जाना है, और सभी जावा प्रक्रियाओं को समाप्त करना है जो राइट क्लिक -> एंड टास्क द्वारा चल रहा है।


2

में सर्वर इंटेलीजे में बिलाव विन्यास के टैब, बदल JMX बंदरगाह अन्य नंबर पर।


इसने मेरे लिए काम किया और स्वीकृत उत्तर नहीं दिया।
सैम ओरोज्को

2

अन्य सभी समाधान दुर्भाग्य से काम नहीं आए। इसी से मेरा काम बना है । मैंने बस डिबगर पोर्ट को कुछ अन्य पोर्ट नंबर में बदल दिया है।

Intelij-> प्राथमिकताएँ -> निर्माण, निष्पादन, तैनाती -> डीबगर-> सर्वर में निर्मित-> पोर्ट (परिवर्तन मान)

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


1

यह कभी-कभी ऐसा होता है कि जब मैं अपने कंप्यूटर को पुनरारंभ करता हूं, तो सब कुछ ठीक है। शायद एक बंदरगाह संघर्ष है।

कंप्यूटर को फिर से शुरू करें क्योंकि जावा या टॉमकैट के उदाहरण पुनरारंभ के दौरान मारे जाते हैं। आप टास्क मैनेजर से विशिष्ट प्रक्रियाओं को मारने पर भी विचार कर सकते हैं

यह भी तब होता है जब संदर्भ में कोई समस्या होती है। xml फ़ाइल। मेरे मामले में, मैंने गलती से संदर्भ मूल्य बदल दिया था।


मैंने सभी उल्लिखित समाधानों की कोशिश की और कंप्यूटर पुनरारंभ के अलावा कुछ भी काम नहीं किया।
सारा टम्मम

1

उपरोक्त विधियों में से कोई भी मेरे मामले में काम नहीं करता है अर्थात रन कॉन्फ़िगरेशन में मशीन नंबर बदलना, मशीन पुनः आरंभ करना, इंटेलीजे में कैश को अमान्य करना, नेटस्टैट ( nestat -anob | findstr <port-number>और फिर tskill <pid>) में दिखाई गई हत्या प्रक्रिया । केवल एक चीज जो अंततः मदद करती थी, वह टॉमकैट को मैन्युअल रूप से शुरू और बंद कर रही थी ( startup.batऔर shutdown.batआपको .shलिनक्स और मैकओएस पर कॉरेसिग फाइलों का उपयोग करना चाहिए )।


1

Intelli J में कॉन्फ़िगर किए गए अपने सर्वर का डिबग पोर्ट बदलें।

यह तय हो जाएगा।यहाँ छवि विवरण दर्ज करें


यहां तक ​​कि परिवर्तन के बाद भी इसका काम नहीं कर रहा है .. मेरे पास कई उदाहरण हैं और उनमें से कुछ यह सभी के लिए काम नहीं कर रहे हैं।
कुशवाहा

0

मेरे मामले में, Tomcat / conf फ़ोल्डर के लिए server.xml में एक समस्या थी जहां मेरे पास एक और टिप्पणी टैग के तहत अतिरिक्त टिप्पणी टैग थे। इसलिए मुझे लगता है, क्योंकि server.xml में कुछ समस्या थी, यह टॉमकैट को शुरू करने में सक्षम नहीं था। और इसके अलावा यह आपके इंस्टॉलेशन डायरेक्टरी से C: \ Users \ username.IntelliJIdea2017.2 \ system \ tomcat \ Tomcat_service को टोमैट फ़ोल्डर कॉपी करता है


1
आपका उत्तर ओपी प्रश्न के साथ मदद करने के लिए नहीं लगता है। उसे क्या करना चाहिए?
Flummox -

0

यह तब होता है जब आपके पास एक ही पोर्ट नंबर पर एप्लिकेशन चल रहा हो। बलपूर्वक प्रक्रिया को मारकर ऐसा करने का एक तरीका। एक व्यवस्थापक के रूप में ओपन कमांड प्रॉम्प्ट। कमांड 'टास्ककिल / IM "java.exe" / F' चलाएं। यह मेरे लिए विंडोज में काम करता था। अगर यह कार्यशील है, तो मुझे बताएं।


0
  1. "रन" कॉन्फ़िगरेशन की जाँच करें कि यह किस पोर्ट का उपयोग कर रहा है ( 8081)।
  2. उस पोर्ट का उपयोग करके अन्य सभी प्रक्रियाओं का पता लगाएं lsof -t -i :8081
  3. उस पोर्ट पर प्रक्रियाओं को मारें। kill PROCESS_ID
  4. टॉमकैट को डिबग मोड में चलाएं।

मेरे मामले में, मैंने डिबगर पोर्ट को बदलने में बहुत समय बर्बाद किया लेकिन यह मुद्दा नहीं था । चूंकि टॉमकैट रन कॉन्फ़िगरेशन में मेरे द्वारा चुने गए पोर्ट पर चलने में सक्षम नहीं था, इसलिए मैं अपनी सेवा को डिबग करने में सक्षम नहीं था।


0

मेरे मामले में IntelliJ में मेरा एक और प्रोजेक्ट खुला था, और टॉमकैट उस प्रोजेक्ट में डीबग मोड में चल रहा था। टॉमकैट के उस उदाहरण को रोककर समस्या का समाधान किया गया।


0

मेरी धारणा यह है कि यह अपवाद आमतौर पर तब होता है जब टॉम्केट अनुचित तरीके से बंद होता है और अभी भी बंदरगाहों को पकड़े हुए है। आमतौर पर यह 1099 पोर्ट को सुनने वाली किसी भी प्रक्रिया को मारने के लिए पर्याप्त है। विंडो 10 के लिए:

netstat -aon | find "1099"


taskkill /F /PID $processId

0

संभवतः आपको वही त्रुटि संदेश मिलता है यदि आपके स्टैंडअलोन / कॉन्फ़िगरेशन फ़ोल्डर में standalone.xml नहीं मिल सकता है। वाइल्डफली 14.0.1 का उपयोग करते समय कम से कम मेरी एक ही त्रुटि है:

WildFly 14.01.1 को चलाने में त्रुटि: डिबगर पोर्ट को खोलने में असमर्थ (127.0.0.1:1233): java.net.SocketException "सॉकेट बंद"


0

इन सभी को आज़माने से पहले बस Android स्टूडियो को पुनः आरंभ करें । मैं अभी उसी का सामना करता हूं और मैं इसे इस तरह से ठीक करता हूं।

मुबारक कोडिंग :)


0

जो भी इसी तरह के संदेश के साथ यहां आता है:

Unable to open debugger port (127.0.0.1:50470):
    java.net.SocketException "Interrupted function call: accept failed"

यह पूरी तरह से स्वतंत्र होने के कारण हो सकता है, अर्थात यह पोर्ट कॉन्फ़िगरेशन नहीं है। उदाहरण के लिए, यदि आप टॉमकैट चला रहे हैं, तो हो सकता है कि आपके पास अमान्य हो web.xml। किसी भी पिछली त्रुटियों के लिए अपने ईवेंट लॉग की जाँच करें:

Cannot load C:\...\conf\web.xml: ParseError at [row,col]:[480,29]
            Message: The element type "param-value" must be terminated by the matching end-tag "</param-value>".

IntellIj त्रुटि लॉग स्क्रीनशॉट


-1

उसी के लिए कई समाधान हैं।

  1. या तो हम IDE को बंद कर सकते हैं (जैसे IntellJ)
  2. खोजें t IND00123: बिन देवब्रतानंद $ lsof -i: 30303 COMMAND PID USER FD TYPE DEVICE SIZE / OFF NODE NAME का विचार 437 देवब्रतानंद 56u IPv4 .xb2720e580a7d6483 0t0 टीसीपी 10.17.130.41.15.12.12.12.122.> स्थानीय: 30303 (स्थापित) IND00123: बिन देवब्रतानंद $ किल -9 437

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