各位XDJM发表看法啊!
解决方案 »
- 向所有熟悉Axis的高手请教,调用服务器方法时报 java.lang.InstantiationException异常
- 关于集合,对象的问题
- 一个关于JFileChooser的问题
- 如何在批处理文件中获取当前的路径,实在不知道该贴在哪儿,因为是做java的时候遇到的问题,就贴这儿吧。
- 初级问题
- 我现在用J2SE做一个Windows系统运行的软件,该软件显示大照片有时会内存溢出。哪位高手知道如何处理?
- 图片文件可否保存在数据库中。
- 一个线程的简单问题
- JAVA开发分布式应用合适吗?在个人主页上,能把java程序当服务器来用,实现以下功能吗?
- 使用斑马打印机打印图片
- button事件中实时更新组件问题
- 问个有关正则表达式的问题
想打断点的地方那个打打断点……
觉得断点麻烦就在关键位置加点打印……
不想调试就info error模式
想调试就debug模式
详细了解这个程序执行的每一步,怎么办呢?
1).如果从日志中还找不到错误,那说明程序不够健壮而且日志机制不够完善。
2).想在eclipse远程调试该程序??随便一个普普通通的web程序,jar包都一大把。假设你部署在远程路径中,在本地使用eclpise,每次程序重新启动部署总要进行大量的数据传输。当然,从理论上来讲,如果仅仅在局域网中这样做也是OK的。可是广域网中的速度远比局域网速度要慢的多。综述:调试的主要目的是为了排除程序的可预知性错误。因此,提高程序的健壮性,以及完善的日志机制。才是上策。
你本地的JVM与远程的WEB容器之间也需要通信,尤其是加了断点的程序,通信量也不可小觑。
我现在不知道使用哪些Jar才能使自己的程序具有远程调试功能。
本地的JVM与远程的WEB容器之间的通信和你项目发布时的通信比起来,那是小巫见大巫!远程调试一般是在日志功能不能完全实现情况才用的,服务端不可能有那么详尽的日志,太多的日志也会影响到服务端正常运行。
================
首先需要说明的是,日志输出一般都放在程序中,你想看到的或你认为可能会出现错误的地方,当然,以后者更多。平时咱们用的LOG4J已经很好了,至于详尽与否,则和你写程序的习惯有关了。当程序给别人使用后,如果出现错误,则马上能通过日志检查出来。
为什么飞机、轮船等都有一个叫黑匣子的东西,那里装的都是数据以及详尽的日志。所以,当飞机、轮船出事时,都以打捞黑匣子为首要任务。绝大多数情况下,找到它就能找到失事原因。太多的日志也会影响到服务端正常运行
============
不知道你这里说的“太多”究竟是多少。只要你不是有事没事(比如定义一个变量后)就搞个日志输出的话,那是多不到哪去的。或许是在下孤陋寡闻,长这么大,还未曾发现有哪个程序因为日志而影响了服务器运行。
不是有时候,是基本所有的时候。除非你写的程序只给你自己用!
========================================================================
在下不才,未通其意,愿闻其详?
jar -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=3999,suspend=y
-jar oneJar.jar
参考http://www.blogjava.net/yongbing/articles/221179.html
服务器端启动服务带上参数
-Xdebug -Xrunjdwp:transport=xxx,addressyyy,server=y,suspend=n
具体可以参考tomcat的启动batch,看看是怎么使用这些参数的客户端
jdb -connect com.sun.jdi.SocketAttach:port=xxxx,hostname=yyyy如果要自己另外开发,那估计要自己封装jdb和rmi