不知道为什么,工程在eplise,IDEA,里都无法启动DEBUG模式,在POM里有加
-
agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y
但是在启动的时候,就像和你开玩笑一样,8000也好,换成5005,就是看不到那串熟悉的开启远程调试端口的提示。这倒底是什么原因,我还不并清楚。但是DEBUG总要开的吧。只能用如下办法。
因为我要用ORACLE,顺便记一下,做为笔记
MAVEN大家都知道,无法管理ORACLE,所以需要自己加入本地库中
mvn install:install-file -Dfile=E:\workspace\Megatron\src\main\lib\hjm.jar -DgroupId=com.hjm -DartifactId=hjm -Dversion=10.2.0.1.0 -Dpackaging=jar
完成之后有提示的,有文化的人都看的懂。去本地库里按它的路径查一下,看看是不是建好了文件和包还有配置文件。接下来在你的工程的POM文件中写入
com.hjm
hjm
10.2.0.1.0
绝逼大概率
然后再mvn install一下,一切正常可以产生JAR包就行了。
接下来用命令行:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -jar E:\workspace\Megatron\target\Megatron-1.0-SNAPSHOT.jar
卡在这里对了。
在ecplise里去建一个:
再点一下DEBUG按扭,就可以在CMD里看到SPRINGBOOT运行的信息了。
运行起来就可以跑了,你可以正常去打断点,注意,一开始可能会弹出报错,不会管它,确定过去就可以了。
不得不再补一下,运行了一段时间以后,发现这样做也有做问题,先不说要在CMD里看输出,虽然个人觉得也比较酷,但有两个奇怪的问题,第一是报错显示的不太对劲,和SPRINGGOOT启动报的错不一样,比较缺少SQL。第二个是在执行数据库操作时的速度特别慢。还有一个问题是,热布署根本没有用处,每次想要执行都要先退出,再发布JAR,再启动。于是我又想办法看能不能解决这些问题。
我又尝试了
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
再使用ecplise里的Remote java Application,发现除了一开始的启动不一样,后面在远程执行之后和前面的方江也并无区别。这里要注意,MVN命令一定要在有POM的地方才可以执行,一开始没有注意这点。
于是我想到可以在ECPLISE里的Java Application里添加
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
,然后用先在ECPLISE里把Application先执行起来。
跑出来了Listening for transport dt_socket at address: 5005 就卡住了。这就对了,这就是我的要结果。
然后再用
SPRINGBOOT就可以在5005先启动的情况下,成功运行起来了!
又可以正常在eclipse下DEBUG了!SQL可以正常打印,运行速度也快。
总结,等于就是用加参数的方式替代POM里的参数。