选择显示字体大小

编程必备经典:java常见问题集锦(1)

问: 如何设置java 2(jdk1.2)的环境变量? 

答: java 2安装后,需要设置path和java_home环境变量.与jdk1.1不同的是:设置好java_home环境变量后,jvm将自动搜索系统类库以及用户的当前路径。 

java 2环境变量的设置如下例所示: 

solaris平台: setenv java_home java2的安装路径 

setenv path $java_home/bin:${path} 

windows平台: set java_home=java2的安装路径 

set path=$java_homebin;%path% 

问: 哪些java集成开发工具支持java 2? 

答: 目前流行的java集成开发环境,如inprise的jbuilder,symantec的visual cafe, sybase的powerj,都支持java 2. 

问: 如果.netscape或ie浏览器中运行java applet时出现了错误,如何确定错误范围? 

答: 当java applet在浏览器中运行时,使用的是浏览器本身的缺省jvm.而不同浏览器对jdk的支持程度也不尽相同. 因此,.netscape或ie浏览器中运行java applet出现了错误,建议使用jdk提供的工具appletviewer或sun公司的hotjava浏览器来测试applet,以确定错误的产生是与浏览器相关。

如果appletappletviewer或hotjava中运行一切正常,则错误的产生是由于浏览 器不完全兼容jdk而引起的. 此时,解决方法可以是使用hotjava浏览器或者安装 sun公司的java plugin. 

如果applet在hotjava浏览器或appletviewer中运行即发生错误,则应当根据错误 提示检查applet程序. 

问: 当用jdbc向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 

答: 这个问题的实现通常与各个jdbc driver的实现有关. 目前大多数jdbc driver采用本地编码格式来传输中文字符,例如中文字符"0x4175"会被转成"0x41"和"0x75"进行传输. 因此我们需要对jdbc driver返回的字符以及要发给jdbc driver的字符进行转换. 

当用jdbc driver向数据库中插入数据时,需要先将unicode转成native code; 当 jdbc driver从数据库中查询数据时,则需要将native code转换成unicode. 下面给出了这两种转换的实现: 

string native2unicode(string s) { 

if (s == null s.length() == 0) { 

return null; 

byte[] buffer = new byte[s.length()]; 

for (int i = 0; i s.length(); i++) { if (s.charat(i)>= 0x100) { 

c = s.charat(i); 

byte []buf = (""+c).getbytes(); 

buffer[j++] = (char)buf[0]; 

buffer[j++] = (char)buf[1]; 

else { 

buffer[j++] = s.charat(i); 

return new string(buffer, 0, j); 

}

除使用以上两个方法之外,有些jdbc driver如果对jdbc driver manager设置了正确 的字符集属性,以上2个方法就不需要了.

问: 当用servlet来处理http请求并产生返回的html页面时,如何使html页面中的中文字符能够正常显示? 

答:  javax.servlet.http.httpresponse类用于产生返回页面.通过httpresponse定义的方法getoutputstream()可以获得servletoutputstream的实例,这样用户就可以利用servletoutputstream.write方法向输出流中写入返回页面的内容. 但是servletoutputstream使用的是缺省的编码方式,如果要使返回页面中的中文字 符能够正常显示,最好显示地指定所用的字符编码方式. 通常需要构造一个 outputstreamwriter , 例程如下: 

public void doget (httpservletrequest req, httpservletresponse res) 

throws servletexception, ioexception 

res.setcontenttype("text/html"); 

servletoutputstream out = res.getoutputstream(); 

outputstreamwriter ow = new outputstreamwriter(out,"gb2312"); 

ow.write("这是测试"); 

ow.flush(); 

ow.close(); 

问:  如何设置java webserver的classpath,以包含用户的class文件? 

答:  有两种方法可以设置java webserver的classpath环境变量,以使用户编写的servlet能够调用用户的class文件. 

将用户的class文件放到 javawebserver_dir/classes目录下,在java webserver 启动时,classes目录被自动加入到classpath环境变量中了. 

修改httpd.nojre文件,将用户class文件所在的路径名加到classpath环境变量中. 

问:  为什么在windows平台上用naming.lookup来获取远程rmi对象时会很慢? 

答:  机器的网络设置不正确很可能会引起该问题的发生. 

rmi使用了java网络类,特别是java.net..netaddress类,它将查询tcp/ip的主机名, 包括ip地址到主机名的映射和主机名到ip地址的映射.在windows平台,这种查询功能 是由本地的windows socket库来实现的. 因此延时是发生在windows库中,而非rmi中. 

如果你的机器设置成使用dns,问题通常是dns服务器查不到主机名,你所发现的延时 是dns查询的延时. 请尝试将rmi通信中涉及到的所有主机名/ip地址加到本地文件 winntsystem32driversetchosts或windowshosts中. 格式如下: 

ip地址 主机名 

如此设置应当可以明显地减少查询所花的时间. 


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons