问: 如何设置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集成开发环境,如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,以确定错误的产生是与浏览器相关。
如果applet在appletviewer或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 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器