使用eclipse,idea等等工具开发java时,都比较笨重,因此,笔者想着精简的原则,尝试使用Jcreator开展调试,查阅了部分网友的材料,加上自己的琢磨,现将心得和大家分享下。
当前环境:JCreator是5.0,Tomcat是9.0,ant是1.9.16,JDK是1.8。
第一步,设置tomcat的调试参数,设置方法如下:
把tomcat的catalina.bat中的set DEBUG_OPTS=设置为以下的参数
set DEBUG_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000
配置tomcat的角色及用户:编辑tomcat-users.xml:
<role rolename="tomcat"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="tomcat" password="testtomcat" roles="tomcat,manager-gui,manager-script"/>
第二步,设置本地的ant:
在JCreator的Project--》project setting---》jdk tools-->select tool type选择run ant,勾选default,点击右边edit的按钮,把ant home设置好,其他默认。
第三步,在JCreator的view菜单-----》other window---》ant view,调出antview 的工具栏
第四步,在JCreator中新建一个Servlet web application,创建后,双击build.xml
对build.xml进行编辑:
1、配置tomcat安装路径:<property name="catalina.home" value="D:/instsoft/apache-tomcat-9.0.41"/>配置tomcat的安装目录
2、配置tomcat的管理url及用户名密码,此处需要注意:<property name="manager.url" value="http://localhost:8080/manager/text"/>
<property name="manager.password" value="testtomcat"/>
<property name="manager.username" value="tomcat"/>
3、修改install的的配置
<target name="install" depends="compile"
description="Install application to servlet container">
<deploy url="${manager.url}"
username="${manager.username}"
password="${manager.password}"
path="${app.path}"
localWar="${build.home}/web"/><!--此处修改为本地路径而不是上传war包,如果是远程调试,需要上传war包-->
</target>
<target name="compile" depends="prepare" description="Compile Java sources">
<!-- Compile Java classes as necessary -->
<javac srcdir="${src.home}"
destdir="${web.home}/WEB-INF/classes"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}" includeantruntime="on">
<classpath refid="compile.classpath"/>
</javac>
</target>
第五步,设置Jcreator的调试参数,通过本地socket端口开展调试:
在Jcreator的run菜单下attach to process中,按照上面的8019端口进行调试,设置timeout为10,
设置好后,JCreator自动连接tomcat就可以开展调试了。
一些其他问题:1、通过ant install的时候,tomcat会将目录下的所有文件拷贝到tomcat的webapps下面。代码修改后,目前需要先remove然后install才能保证代码更新。(有网友知道怎么弄的可以留言)