2013-04-04 11 views
5

में जावा परियोजना डिबग नहीं कर सकते पर OSX डब्ल्यू/Tomcat7 और आईडिया इंटेलीजे 12.आईडिया इंटेलीजे 12

रन विन्यास ठीक काम करता है। डिबग विन्यास की शिकायत के साथ:

/usr/local/Cellar/tomcat/7.0.37/libexec/bin/catalina.sh run 
    Error occurred during initialization of VM 
    agent library failed to init: jdwp 
    ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options. 
    Disconnected from server 

मैं '11 से this पद पाया, लेकिन यह मदद नहीं कर रहा है।

"एक बार जब मैंने सिस्टम चर से इसे हटा दिया (आईडीईए के अंदर इसे केवल पढ़ा जाता है) समस्या को ठीक किया गया था" समझ में आता है। इसलिए मैंने इस पूरे ब्लॉक को catalina.sh

if [ -z "$JPDA_OPTS" ]; then 
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND" 
    fi 

से मदद नहीं की। किसी भी तरह की सहायता का स्वागत किया जाएगा। धन्यवाद!

जावा रन कमांड:

+ eval exec '"/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java"' '"-Djava.util.logging.config.file=/Users/ryan/Library/Caches/IntelliJIdea12/tomcat/Unnamed_secure_post_3/conf/logging.properties"' -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:65523,suspend=y,server=n -Dcom.sun.management.jmxremote= -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=127.0.0.1 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager '-Djava.endorsed.dirs="/usr/local/Cellar/tomcat/7.0.37/libexec/endorsed"' -classpath '"/usr/local/Cellar/tomcat/7.0.37/libexec/bin/bootstrap.jar:/usr/local/Cellar/tomcat/7.0.37/libexec/bin/tomcat-juli.jar"' '-Dcatalina.base="/Users/ryan/Library/Caches/IntelliJIdea12/tomcat/Unnamed_secure_post_3"' '-Dcatalina.home="/usr/local/Cellar/tomcat/7.0.37/libexec"' '-Djava.io.tmpdir="/usr/local/Cellar/tomcat/7.0.37/libexec/temp"' org.apache.catalina.startup.Bootstrap start 
+0

क्या आप कमांड लाइन आमंत्रण दिखा सकते हैं जो वास्तव में चल रहा है (catalina.sh में जब यह 'जावा' निष्पादन योग्य होता है)? – mpierce

+0

मैं निम्नलिखित नहीं कर रहा हूं। मैं अपनी युद्ध फ़ाइल को टॉमकैट वेबएप निर्देशिका में कॉपी करता हूं और कैटलिना चलाता हूं। – Ryan

+0

टॉमकैट स्टार्टअप स्क्रिप्ट में 'echo' कथन जोड़ें जब यह जावा को यह देखने के लिए शुरू करता है कि वास्तविक विकल्प क्या उपयोग किए जा रहे हैं। – CrazyCoder

उत्तर

3

समस्या थी catalina.sh बुला रहा था setenv.sh जो इस तरह JAVA_OPTS की स्थापना की गई थी:

JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000" 

मैं नहीं जानता कि जहां इस setenv.sh आया चूंकि, एक सह-कार्यकर्ता के होमब्रू टोमकैट के इंस्टॉल के रूप में इस फ़ाइल में नहीं था।

अभी के लिए, मैंने catalina_idea_debug.sh का उपयोग करने के लिए IntelliJ डीबग कॉन्फ़िगर किया है, जो केवल catalina.sh minus की एक प्रति setenv.sh को कॉल करता है। अभी ठीक काम करता है।

+0

fyi, setenv.sh गुणों को शामिल करने के लिए catalina.sh के अनुसार प्रस्तावित तरीका है। फिर भी, जैसा कि आपने बताया है, setenv.sh का उपयोग करना आइडिया के साथ काम नहीं कर रहा है। – gpol

+0

मुझे इंटेलिज 15 में ** विंडोज ** पर टॉमकैट रन कॉन्फ़िगरेशन के साथ भी यही समस्या थी। मैंने अभी setenv.bat ** फ़ाइल को setenv.bat.old में बदल दिया है और फिर कॉन्फ़िगरेशन फिर से चलाया और अब डिबगिंग कार्य करता है। – Brod

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