需要调试公司的GUI产品:eas控制台的一个脚本
这个控制台是通过将java启动命令写入到脚本里的方式启动的
下面这段命令就是启动java程序的命令:
%JAVA_HOME%\bin\java -Xmx512m -Xms64m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=3999 -cp %ADMINCLASSPATH% -Dibm.stream.nio=true -Duser.timezone=Asia/Shanghai -DPLUGIN.LIB.PATH=%~dp0lib -DAPP_SERVER_TYPE=%APP_SERVER_TYPE% -DAPP_SERVER_HOME=%APP_SERVER_HOME% -DAPUSIC_SERVER_HOME=%APUSIC_SERVER_HOME% -DWAS_SERVER_HOME=%WAS_SERVER_HOME% -DWLS_SERVER_HOME=%WLS_SERVER_HOME% -DAPP_SERVER_VERSION=%APP_SERVER_VERSION% -DADMIN_HOME=%~dp0 -DEAS_HOME=%EAS_HOME% -Dlog4j.configuration=file:.\config\log4j.properties -DNoStd=true -DjvmStdCount=20 -DjvmStdSize=4 -Dadmin.application=file:.\config\standalone_app.xml -DjvmStd=.\logs\admin.log -Dautomate=true -DautoTask=%1 -DparamFile=%2 -DlogFile=%3 -DerrorLogFile=%4 -DconfigLogFile=%5 com.kingdee.eas.tools.launcher.Start .\admin.pid org.eclipse.core.runtime.adaptor.EclipseStarter -configuration .\config -clean
这里是采用的java方式运行,而非javaw,这一点在debug模式下是有区别的
其中的这段命令
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=3999 使java程序以debug模式启动,定义了监听端口号为3999
这里有两种debug模式 #我自己的理解
第一种:启动程序后,程序会立即执行下去,不会在启动程序前等待eclipse的监听,这种是以javaw方式启动程序时出现的情况
第二种:启动程序后,程序不会立即执行下去,会在启动程序前等待eclipse的监听,这种是以java方式启动程序时会出现的情况
很多时候我们在调试程序的时候都需要将javaw改为java,如果直接让程序执行下去,那些需要外界触发,程序启动就执行的代码我们无法调试到.
因为eclipse启动监听是必须在程序运行之前,我们启动eclipse监听后,需要调试的代码程序可能已经运行过去了.