问题:
最近在学习java代码,用到IDEA和tomcat对代码进行调试,直接运行的时候都不会报错,但是一调试就会报错:
Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options
解决方法:
人狠话不多,直接放解决方法:(只针对windows下,其他操作系统没尝试)
- 找到本地部署的tomcat文件夹bin目录中的catalina.bat文件
打开
将以下内容(一般在第二行)
set JAVA_OPTS=-server -Xms4096m -Xmx4096m -XX:MaxNewSize=512m -XX:MaxPermSize=256m
改为
set JAVA_OPTS=%JAVA_OPTS% -server -Xms4096m -Xmx4096m -XX:MaxNewSize=512m -XX:MaxPermSize=256m
如果没有上面内容,直接添加即可
- 还是在catalina.bat文件中,查找关键字,-Xrunjdwp:transport
找到如下内容:
把圈起来这段内容删掉 - 在IDEA中把tomcat配置中调试一栏的传递环境变量选项打开
- 打上断点,即可进行调试
整个解决方法的过程非常的操蛋,心路历程在下面介绍,有兴趣的朋友可以看看,哈哈。。
解决过程:
上网搜解决方法方案:
ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options
解决方案是把tomcat配置中调试一栏的传递环境变量选项关掉
关了之后发现,欸?确实可以调试了,就当我欣喜若狂打上断点,准备开始调试的时候,发现居然不跳到断点上?!WTF
然后又去网上找解决方法:
idea使用本地tomcat不进debug
文章里面提到要找到本地的tomcat文件夹,bin目录中的catalina.bat文件
将以下内容(一般在第二行)
set JAVA_OPTS=-server -Xms4096m -Xmx4096m -XX:MaxNewSize=512m -XX:MaxPermSize=256m
改为
set JAVA_OPTS=%JAVA_OPTS% -server -Xms4096m -Xmx4096m -XX:MaxNewSize=512m -XX:MaxPermSize=256m
如果没有上面内容,直接添加即可
然后第二步需要把tomcat配置中调试一栏的传递环境变量选项打开
看到这里我就傻眼了,前面我调试不了需要关掉,关了之后虽然可以调试,但断点进不去,又要我打开,这tm不是死循环了吗?
然后我又去找解决方法:
链接1
链接2
两个方法一样,讲的都是把什么xml文件中的某段内容删掉
但是讲的又非常抽象,我看了一脸懵逼
什么卡特琳娜.xml??WTF
就当我绞尽脑汁不知如何是好时,突然想到前面提到的tomcat目录下的catalina.bat文件,catalina?不会就是他说的卡特琳娜吧。。
然后我就打开catalina.bat文件,搜索关键字:-Xrunjdwp:transport
找到如下内容:
把圈起来这段内容删掉,然后我再去调试并打断点的时候,发现已经进到断点里了!!喜大普奔TAT!!!