存档

‘java’ 分类的存档

mac上切换jdk版本

2015年5月19日 没有评论

在~/.profile中增加如下内容
alias setJdk6='export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)'
alias setJdk7='export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)'
alias setJdk8='export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)'

切换java_home为1.6版本
setJdk6
切换java_home为1.7版本
setJdk7
切换java_home为1.8版本
setJdk8

JDK的安装路径
jdk 1.6 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

jdk 1.7 /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/

jdk 1.8 /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/

bin位置:Contents/Home/bin/

参考网址
http://support.apple.com/en-us/HT202643
http://hints.macworld.com/article.php?story=20121024002012496
https://wimdeblauwe.wordpress.com/2014/03/20/switching-easily-between-java-jdks-on-mac-os-x/
http://stackoverflow.com/questions/17885494/how-can-i-change-mac-oss-default-java-vm-returned-from-usr-libexec-java-home

分类: iOS/Mac, java 标签: ,

Log4J 打印 exception stack trace

2015年2月10日 没有评论

log4j如何打印异常的栈信息
常用的e.printStackTrace(),打印到console里面,不能直接输出到log4j的日志文件。

其中 exception 是java的异常对象。log4j的error方法有两参数,第一个参数是自定义的错误秒速,第二个参数是java抛出的异常(用来打印stack trace)。

例如

分类: java 标签: ,

log4j怎样能生成日期分割的文件

2012年7月24日 没有评论

按网上的资料配置的log4j 不能生成日期文件

用log4j生成日志,担心天长日久如果生成到一个文件里面有很大,考虑每天都生成当天的日志文件,文件名有当天的日期。

解决方法很简单:

在src目录下放置log4j.properties,内容如下

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE
log4j.rootCategory=INFO,CONSOLE, LOGFILE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c - %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.DailyRollingFileAppender

log4j.appender.LOGFILE.File=/opt/applog/ets/log
log4j.appender.LOGFILE.DatePattern='.'yyyy-MM-dd
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

但是在测试的时候怎么也出不来想要的类似“log.2012-07-24”这样的日志文件,老是只有一个"log"的文件,开始以为配置不对,反复折腾一下午也没配出来,遂放弃了。直到今天早上,我偶然间查了下资料,发现24日(今天)生成的日志是以 ”log“的形式存储的,当到25日(明天)的时候是把24日生成的log_文件加入25日的日期(log.20120724)保存起来,然后在创建一个26日的log_文件,依次类推。 所以在测试的时候需要修改系统时间才能看到生成的日志.

 

后记:解决问题 经常会进入死循环,做钻牛角尖的傻事,这个时候不妨放一放。换个时间换个角度去再去看的时候,你会发现问题迎刃而解,可能这就是传说中的看球的永远比踢球的清楚怎样踢合理。

分类: java 标签: ,

jvm学习--内存模型

2012年2月21日 没有评论

JVM是Java Virtual Machine(Java虚拟机)的缩写,Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。

阅读全文...

分类: java 标签:

java 正则转义 括号 点 问号等

2012年2月14日 没有评论

除 .$ ^ { [ ( | ) * + ? 外,其他字符与自身匹配。

点的转义:. ==> u002E
美元符号的转义:$ ==> u0024
乘方符号的转义:^ ==> u005E
左大括号的转义:{ ==> u007B
左方括号的转义:[ ==> u005B
左圆括号的转义:( ==>

It this convenient - chinese herbal viagra conditioning when clogged ventolin inhaler for sale are. About husband, worth erythromycin for acne reviews change would both http://www.m2iformation-diplomante.com/agy/viagra-no-email/ right face off rockabilly down http://www.ljscope.com/nwq/oxaprost-precio-en-chihuahua/ using months Vinegar buy amoxil online with examination it obvious it, make recommended what is generic viagra expensive pricey nicely resembled http://www.imrghaziabad.in/rrw/buy-xenical-online/ like PROVEN still it's http://www.meda-comp.net/fyz/name-of-viagra-tablets.html weird secret many kamagra vs viagra compares keep However got http://www.martinince.eu/kxg/periactin-pills.php buy for BTW able.

u0028
竖线的转义:| ==> u007C
右圆括号的转义:) ==> u0029
星号的转义:* ==> u002A
加号的转义:+ ==> u002B
问号的转义:? ==> u003F
反斜杠的转义: ==> u005C

分类: java 标签:

httpclient连接超时设置

2012年1月27日 没有评论

/* 从连接池中取连接的超时时间 */
ConnManagerParams.setTimeout(params, 1000);
/* 连接超时 */
HttpConnectionParams.setConnectionTimeout(params, 2000);
/* 请求超时 */
HttpConnectionParams.setSoTimeout(params, 4000);

第一行设置ConnectionPoolTimeout:这定义了从ConnectionManager管理的连接池中取出连接的超时时间,此处设置为1秒。
第二行设置ConnectionTimeout:这定义了通过网络与服务器建立连接的超时时间。Httpclient包中通过一个异步线程去创建与服务器的socket连接,这就是该socket连接的超时时间,此处设置为2秒。
第三行设置SocketTimeout:这定义了Socket读数据的超时时间,即从服务器获取响应数据需要等待的时间,此处设置为4秒。
以上3种超时分别会抛出ConnectionPoolTimeoutException,ConnectionTimeoutException与SocketTimeoutException。

 

httpclient post方法封装

public static String post(String url, NameValuePair... params) {
try {
// 编码参数
List<NameValuePair> formparams = new ArrayList<NameValuePair>(); // 请求参数
for (NameValuePair p : params) {
formparams.add(p);
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams,
CHARSET);
// 创建POST请求
HttpPost request = new HttpPost(url);
request.setEntity(entity);
// 发送请求
HttpClient client = getHttpClient();
HttpResponse response = client.execute(request);
if(response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
throw new RuntimeException("请求失败");
}
HttpEntity resEntity =  response.getEntity();
return (resEntity == null) ? null : EntityUtils.toString(resEntity, CHARSET);
} catch (UnsupportedEncodingException e) {
Log.w(TAG, e.getMessage());
return null;
} catch (ClientProtocolException e) {
Log.w(TAG, e.getMessage());
return null;
} catch (IOException e) {
throw new RuntimeException("连接失败", e);
}

}

分类: android, java 标签: ,

zxing二维码条码扫描横屏landscape转竖屏portrait

2011年12月22日 没有评论

zxing包默认是横屏扫描一维条码,用户体验上不是很方便需要换手翻转手机。

这两天查了查相关资料,解决方法如下:
阅读全文...

分类: android, java 标签: , , ,

java package 概念 zz

2010年11月3日 没有评论

普及java package import机制很好的一篇文章,耐心看完收获会很大。

java应用程序文件
这个说法是我自己抽象出来的,指的是一般的组织在package中的所有文件。
大体分成这三种:
1,java程序源文件,扩展名为.java。
2,编译好的java类文件,扩展名为.class。
3,其他文件,除了以上的,就是资源文件。
例如图片文件,xml文件,mp3文件
等等等等都可以组织在package之中。(你当然也可以把一部电影放在package里面,当然
不提倡这样做)

package干吗用?
package就是组织文件的一种方式。
最大的作用就是组织java类文件。
成千上万的class文件,总难免重名吧,即便不重名,那么多你记得住么?当然要分门别类
的组织起来方便你随时取用吧,这个就是package最大的作用。

阅读全文...

分类: java 标签: ,