在我机器上安装的是JDK6,下载activeMQ5.3启动时报错,提示jaxb包已经加载2.0版本无法加载2.1版本。
我通过网络搜索了一下发现,jaxb2.0是JDK发布时包含在rt.jar包中的。但是activeMQ5.3却需要2.1版本。这该如何处理?
总不能将rt.jar包解开,将jaxb2.1的类覆盖进去,再重新打包吧。这样太麻烦了。
再次进行网络搜索,发现JDK提供了一个endorsed目录,该目录是由系统变量System.getProperty("java.endorsed.dirs")
定义的。默认情况下一般都是${JAVA_HOME}/jre/lib/endorsed
目录。放在该目录下的jar包可以替换掉JDK默认的jar包。
将activeMQ中的jaxb2.1包放入该目录,再次启动activeMQ,问题解决。 ......
整个类文件注释
示例如下
:
/*
* @(#)Object.java
1.61 03/01/23
*
* Copyright 2003 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package java.lang;
注释结构
:
/*
* @(#){
类名称
}.java
{
创建时间
}
*
* {
某人或某公司具有完全的版权
}
* {
使用者必须经过许可
}
*/
package java.lang;
2.
具体类功能注释
示例如下
:
/**
* Class <code>Object</code> is the root of the class hierarchy.
* Every class has <code>Object</code> as a superclass. All objects,
* including arrays, implement the methods of this class.
*
* @author
unascribed
* @version 1.61, 01/23/03
* @see
java.lang.Cl ......
环境:数据库sql server2005,jdk1.6 ,myeclipse,驱动jdts1.2.2
执行以下代码,报错:
String querySQL = "{?=call p_sys_manager_csReport(?,?,?,?,?)}";
cstmt = conn.prepareCall(querySQL);
cstmt.registerOutParameter(1, java.sql.Types.INTEGER);
cstmt.setInt(2, modType);
cstmt.setInt(3, dptId);
cstmt.setInt(4, eplId);
cstmt.registerOutParameter(5, java.sql.Types.VARCHAR);
cstmt.registerOutParameter(6, java.sql.Types.VARCHAR);
rs = cstmt.executeQuery();
if (rs != null) {
if (rs.next()) {
companyTotal = rs.getInt("companyTotal");
}
}
String temp = null;
temp = cstmt.getString(5);//此行报错
报错信息为:
java.sql.SQLException: Output parameters have not yet been processed. Call getMoreResults().
at net.sourceforge.jtds.jdbc.ParamInfo.getOutValue(ParamInfo.java:159)
at net.sourceforge.jtds.jdbc.JtdsCallableStatement.getOutputValue(JtdsCallableStatement.java:116)
at net.sourceforge.jtds.jdbc.Jt ......
public class Parent
{
//1
static int a = 1;
//2
static
{
a = 10;
System.out.println("parent static code");
}
//4
public Parent()
{
System.out.println("Parent constructor");
System.out.println("Parent a=" + a);
}
public static void main(String[] args)
{
System.out.println("***************");
Parent c = new Child();
}
}
class Child extends Parent
{
static int a = 2;
//3
&n ......
在CSDN中看到了个有关java技巧的帖子,觉得非常有用,可以避免开发过程中产生的一些低级的错误,帖子本身已经进行了总结,我挑出了其中一些个人觉得平时开发过程中有用的部分,再加上自己在工作中学到的技巧,整理在本文中,并随着时间实时更新
1、写好注释。输入参数、输出类型、方法功能,把这三点描述清楚,非常有必要。
2、如果方法返回一个boolean类型,那么
使用
return 方法;
代替
if(方法){
return ture;
} else {
return false;
}
3、当两个String类型的字符串准备进行连接时,不要使用String1+String2,而使用StringBuffer str = new StringBuffer(String1);str.append(String2)
4、在代码中使用固定字符串时,不要直接使用,如"保存"这个字符串,尽量使用public static final String去声明
5、使用null==对象
6、连接关闭之前先判断是否为null
7、声明数组时,尽量把[]放在数据类型后面,方便阅读
8、在sql查询语句中,加上" ......
本文转自:http://cyp-034.blog.163.com/blog/static/2823190520074691849380/
stream
代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源。在Java的IO中,所有的stream(包括Inputstream和
Out stream)都包括两种类型:
(1)字节流
表示以字节为单位从stream中读取或往stream中写入信息,即io包中的inputstream类和outputstream类的派生类。通常用
来读取二进制数据,如图象和声音。
(2)字符流
以Unicode字符为导向的stream,表示以Unicode字符为单位从stream
中读取或往stream中写入信息。
区别:
Reader和Writer要解决的,最主要的问题就是国际化。原先的I/O类库只支持8位
的字节流,因此不可能很好地处理16位的Unicode字符流。Unicode是国际化的字符集(更何况Java内置的char就是16位的
Unicode字符),这样加了Reader和Writer之后,所有的I/O就都支持Unicode了。此外新类库的性能也比旧的好。
但是,Read和Write并不是取代InputStream和OutputStream,
有时,你还必须同时使用"基于byte的类"和"基于字符的类"。为此,它还提供了两个"适配器(adapter)"类。
InputStreamReader负责将Inpu ......