- 浏览: 272169 次
- 性别:
- 来自: 山东
最新评论
-
xchz:
没想到做的这么完善
状态模式-实现屏幕截取程序 -
songwangchu:
不错啊。哈哈哈
Reactor模式,或者叫反应器模式 -
yuanliangding:
很简洁易懂。怎么没有系列文章
Reactor模式,或者叫反应器模式 -
过冷水:
讲的不错
Reactor模式,或者叫反应器模式 -
Hero_z:
讲的非常通俗易懂,108个赞!!!
Reactor模式,或者叫反应器模式
引子
先说一下为什么写这一篇小文章,最近不少同事是在问一个问题,为什么Ant编译出的代码在日志里的出错异常栈看不到行号信息,每次如果在定位问题,都需要用eclipse重新将相应的jar包编译一下,再放到问题环境上重现一下,这样再看日志才可以。而且使用ant生成的包就算是远程调试也不可用,断点总是打不上。
一般的开发都会有一套持续集成的环境,用作每日构建,用ant或是其他工具,开发人员一般用Eclipse或其他的IDE做开发,所以经常会遇见上面的问题。
原因
ant的javac任务里有对debug信息输出的设置,不过默认是不输出。
javac中设置调试信息级别的选项为-g,其详细含义如下,英文太简单,偶会详细介绍一下:
public class Main {
public static void main(String[] args) {
Test t = new Test();
t.sayHello();
}
}
class Test
{
public Test() {
}
public void sayHello()
{
int a = 10; // 断点将打在此行
int b = a++;
System.out.println("b:" + b);
String hello = "Test say";
hello += " hello";
System.out.println(hello);
}
}
以上javac选项英文描述出自:javac - Java programming language compiler,本文只关注调试信息相关选项,其他可自行参考。
OK,算是介绍完了,相信大家对这几个参数的含义应该也理解了。
另外在最后想说一下:Eclipse编译使用编译器并不是jdk自带的javac,而是Eclipse JDT自己的编译器。虽然本文的演示是用的Eclipse,但对于javac生成类文件时的调试信息选项的含义和用法也是一样的,Eclipse的JDT编译器和javac是兼容的。
如果想了解Eclipes的JDT编译器和javac编译器的不同可以参考以下文档:
这里介绍了一个小例子,说明这两个编译器间的差别。
Java Compiler - Eclipse compiler vs. Sun compiler
这个是Eclipse的帮助里的东东,介绍Eclipse的JDT编译器的使用,(当然你可以通过本地Eclipse的帮助查看)
http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm
这里面的编译方法偶在本地试过了,很好用,你也可以试式用JDT的编译器编译个文件试一试。Eclipse 3.5的示例用法如下:
D:\Program Files\eclipse\plugins>java -jar org.eclipse.jdt.core_3.5.2.v_981_R35x.jar -d F:\Study\eclipsepro\Study\src\eclipse -g F:\Study\eclipsepro\Study\src\*.java
还有一个参考资料就是《深入java虚拟机》,纸件的,没法贴链接了。嘿嘿
评论
这个是为什么?能不能详细说一下,看文档说:
个人觉得如果要反射时用,是不是将Annotation只要定义成RUNTIME的就可以了?和编译选项没有关系吧?
spring在有些地方确实使用了调试信息,比如Spring MVC3中的 @RequestParam 注解,但是在没有调试信息的情况下,也是可以的,但是需要多点参数,如 @RequestParam("name1")
这个是为什么?能不能详细说一下,看文档说:
个人觉得如果要反射时用,是不是将Annotation只要定义成RUNTIME的就可以了?和编译选项没有关系吧?
发表评论
-
转:idea点用C盘空间解决办法
2015-03-30 17:02 1452原文:http://my.oschina.net/ulyn ... -
转:Java安全模型
2015-02-26 13:50 790原文地址:http://www.ibm.com/develo ... -
序列化对象大小计算
2013-01-21 16:45 0import java.io.ByteArrayOutput ... -
wait死了,今天真是郁闷
2012-09-13 22:21 1007wait should always be in syn ... -
获取所有淘金币全额兑换商品
2012-08-08 16:36 1732找淘金币全额兑换的商品是不是很麻烦,点来点去每个类目找一下,等 ... -
gc 日志格式
2011-03-04 14:58 0Here's an example GC log file w ... -
使用Oauth向新浪微博发消息
2011-02-13 00:16 4748最近看了一下新浪围脖 ... -
classloader
2011-02-12 16:57 0/** * classloader single * ... -
mail
2011-02-12 16:28 0package org.mail.core; impor ... -
Mina原理草图及注释
2011-01-18 23:00 5924今天先画一个草图备忘,明天再注释一下。 上图 ... -
Reactor模式,或者叫反应器模式
2010-11-29 22:29 69391Reactor这个词译成汉语还真没有什么合适的,很多地方叫反应 ... -
eclipse“随变”,随机变换eclipse启动界面
2010-06-02 20:17 4310对eclipse的启动界面审美疲劳了,手贱,想换掉它,趁老婆不 ... -
文件Copy,什么方式才最快呀~~
2010-05-17 23:31 1516闲逛CSDN,发现有人找文件Copy的方法,顺手解答了一下,有 ... -
Eclipse调试常用技巧
2010-04-06 01:43 25719本文写给那些像几年前的我一样刚刚走出校门,及一些未使用过这些高 ... -
log4j真的比JDK logger快吗?
2009-09-20 23:58 4208这里不想比较这两个日 ... -
String.format函数使用方法介绍
2009-08-09 10:52 2039转自:http://blog.csdn.net/andycpp ... -
在程序中实现对java源文件编译的3种方法
2009-07-18 18:34 2699一般情况下对java源文件的编译均是在代码完成后使用javac ... -
Java读带有BOM的UTF-8文件乱码原因及解决方法
2009-05-28 01:31 20266最近在处理文件时发现了同样类型的文件使用的编码可能是不同的。所 ... -
Java正则与栈溢出
2009-05-13 00:09 4819使用RegexBuddy测试正确的 ... -
Java 正则表达式处理选项及SQL注释删除
2009-05-09 23:58 5900常 量 等效的嵌入标志表达式 ...
相关推荐
python库。 资源全名:javac-parser-0.1.0.tar.gz
java运行依赖jar包
java jar包,亲测试可用 安全,可以对其进行数字签名,只让能够识别数字签名的用户使用里面的东西。 加快下载速度; 压缩,使文件变小,与ZIP压缩机制完全相同。 包封装。能够让JAR包里面的文件依赖于统一版本的...
分析如下:Ant的debug和debuglevel参数会去调用JDK的javac -g参数, 而-g参数又包含3个选项, -g:{lines,vars,source},分别代表编译时向字节码中写入行号、方法局部变量信息、关联源代码信息。 这里主要说说-g:var...
javac-source-code-reading:javac源码调试
javac源码系列。。。。。。。。。。。。。。。。。。。。。。。。。。。
javac-jdk.rar
javac-shaded-9+181-r4173-1.pom maven访问不了,将其下载后打入本地包即可使用
java原始路径lein-javac-resources Leiningen插件可用于:java-source-paths资源文件。 该插件旨在用于具有遗留Java代码库的项目,其中资源文件与Java源文件一起放置。 用法 将插件包括在project.clj的:plugins矢量中...
java jar包,亲测试可用 安全,可以对其进行数字签名,只让能够识别数字签名的用户使用里面的东西。 加快下载速度; 压缩,使文件变小,与ZIP压缩机制完全相同。 包封装。能够让JAR包里面的文件依赖于统一版本的...
Java毕业设计源码-基于JavajavaC语言试题生成与考试系统(源代码)(IT计算机专业Java源代码资料).zipJava毕业设计源码-基于JavajavaC语言试题生成与考试系统(源代码)(IT计算机专业Java源代码资料).zipJava毕业设计...
功能-javac 一个Javac插件,用于提取要插入机器学习模型的... javac -cp extractor/target/features-javac-extractor-1.0.0-SNAPSHOT-jar-with-dependencies.jar -Xplugin:FeaturePlugin T.java 步骤4:生成.dot文件
NULL 博文链接:https://qn-lf.iteye.com/blog/990975
当我们编辑了一个Java源文件保存时,是以操作系统默认的字符编码保存的(Windows xp默认字符集是GBK)。这篇文章主要介绍了javac -encoding 用法详解,非常具有实用价值。
java编译的javac.jar
java运行依赖jar包
java运行依赖jar包
periodic-jobs.zip,周期性作业的简单调度程序。需要spring。周期性作业的简单计划程序
2) 调试编译方式:javac -g A.java 3) 代码编译方式:javac -g:none A.java 案例如下:类A public class A{ public static void main(String args[]){ for(int i=0;i<100000;...