常见问题集锦( 中国官方站) Java 常见问题集锦(来自 Sun 中国官方站)
2(JDK1.2)的环境变量 的环境变量? 问: 如何设置 Java 2(JDK1.2)的环境变量? 答: Java 2 安装后,需要设置 PATH 和 JAVA_HOME 环境变量.与 JDK1.1 不同的是:设置好 JAV A_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, Sy base 的 PowerJ,都支持 Java 2. 时出现了错误,如何确定错误范围? 问: 如果在 Netscape 或 IE 浏览器中运行 Java applet 时出现了错误,如何确定错误范围? 答: 当 java applet 在浏览器中运行时,使用的是浏览器本身的缺省 JVM.而不同浏览器对 J DK 的支持程度也不尽相同. 因此,在 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; 当 JD BC 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 的实例,这样用户就可以利用 Servle tOutputStream.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(); } CLASSPATH,以包含用户的 文件? 问:如何设置 Java WebServer 的 C