### Java常见问题集锦 #### 1. Java2 (JDK 1.2) 的环境配置 - **问题描述**:如何在不同操作系统上正确配置Java2(即JDK 1.2)的环境变量? - **解决方案**: - **Solaris平台**: - 设置`JAVA_HOME`为Java2的安装目录。 - 更新`PATH`变量来包含`JAVA_HOME/bin`目录。 ```bash setenv JAVA_HOME /path/to/Java2/installation setenv PATH $JAVA_HOME/bin:$PATH ``` - **Windows平台**: - 设置`JAVA_HOME`为Java2的安装路径。 - 更新`PATH`变量来包含`JAVA_HOME/bin`目录。 ```cmd set JAVA_HOME=C:\path\to\Java2\installation set PATH=%JAVA_HOME%\bin;%PATH% ``` - **注意**:与JDK 1.1相比,在配置Java2时需要明确设置`JAVA_HOME`环境变量,并确保`PATH`变量中包含了对应的`bin`目录。 #### 2. 开发工具对Java2的支持情况 - **问题描述**:目前主流的Java开发工具是否支持Java2? - **答案**:当前大多数主流的Java开发工具如Inprise JBuilder、Symantec VisualCafe、Sybase PowerJ等都已支持Java2。 #### 3. Netscape和Internet Explorer加载Java Applet时的问题 - **问题描述**:当使用Netscape或Internet Explorer浏览器加载Java applet时,为什么会遇到加载失败的情况? - **解决方案**: - 加载Java applet时出现问题,通常是由于浏览器所使用的Java虚拟机(JVM)版本过旧或者不兼容导致的。 - Netscape和Internet Explorer加载Java applet时出现加载失败,可能是因为浏览器内置的JVM版本较低或不支持JDK 1.2。 - 可以尝试使用Sun公司提供的独立Applet Viewer工具(HotJava)来查看Applet,这有助于确认Applet本身是否存在兼容性问题。 - 对于Web浏览器加载问题,建议安装最新版本的Java运行环境或使用Sun公司的Java Plugin插件来解决兼容性问题。 #### 4. JDBC连接数据库时的地址显示问题 - **问题描述**:在使用JDBC连接数据库时,为何连接地址会显示为十六进制格式? - **解决方案**: - 这种情况通常发生在JDBC驱动程序内部处理地址转换时,某些JDBC驱动程序可能会将地址以十六进制格式表示。 - 如果连接地址显示为类似 "0x4175" 的形式,可以考虑将该十六进制字符串转换回原始格式,例如将 "0x4175" 分解并转换为 "0x41" 和 "0x75"。 - 在进行数据库读取操作时,需要将Unicode编码转换为本地编码;而在进行写入操作时,则需要将本地编码转换为Unicode编码。 - 可以通过自定义函数 `native2Unicode` 来实现编码转换功能,具体代码如下所示: ```java public String native2Unicode(String s) { if (s == null || s.length() == 0) { return null; } byte[] buffer = new byte[s.length()]; int j = 0; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= 0x100) { 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驱动程序能够正确识别和处理地址转换。 #### 5. Servlet输出HTML页面时字符编码问题 - **问题描述**:在Servlet中输出HTML页面时,如何确保页面中的中文字符能够正常显示? - **解决方案**: - 需要在Servlet中设置正确的响应类型和字符编码。 - 通过`ServletResponse.setContentType()`方法指定输出内容的MIME类型和字符编码。 - 使用`ServletOutputStream`来输出HTML内容,但为了支持中文字符的正常显示,需要通过`OutputStreamWriter`来实现编码转换。 - 示例代码如下: ```java protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); // 或者 "text/html;charset=GB2312" ServletOutputStream out = response.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(out, "UTF-8"); // 或者 "GB2312" osw.write("你好世界!"); osw.flush(); osw.close(); } ``` #### 6. Java Web服务器的类路径设置 - **问题描述**:在Java Web服务器中,如何设置类路径以包含特定的类库? - **解决方案**: - 在Java Web服务器中,可以通过设置`CLASSPATH`环境变量来包含特定的类库。 - 如果服务器没有显式地设置类路径,它通常会自动将`WEB-INF/classes`目录添加到类路径中。 - 若要手动设置类路径,可以在服务器的配置文件中(如Tomcat的`server.xml`)指定类路径,或者修改`httpd.nojre`文件来包含特定类库的路径。 - 示例代码如下: ```xml <Context path="" docBase="webapp" debug="0" reloadable="true"> <ResourceLink name="jdbc/ExampleDS" global="jdbc/ExampleDS" type="javax.sql.DataSource"/> <Parameter name="java.naming.factory.initial" value="org.apache.naming.java.javaURLContextFactory"/> <Parameter name="java.naming.factory.url.pkgs" value="org.apache.naming"> <Parameter name="java.naming.provider.url" value="file:/path/to/classes"> </Context> ``` #### 7. Windows平台上的命名服务查询问题 - **问题描述**:在Windows平台上使用Java的Naming.lookup远程调用RMI服务时为何会失败? - **解决方案**: - 问题原因在于Java的RMI服务依赖于网络通信,会调用`java.net.InetAddress`来获取网络地址信息。 - 在Windows系统中,该地址信息的查询是由Windows Socket实现的,可能会出现问题。 - 解决方案之一是使用DNS解析,如果DNS服务不可用或解析失败,可以通过手动编辑`winnt\system32\drivers\etc\hosts`文件来映射IP地址和主机名。 - 示例配置如下: ```plaintext 192.168.1.100 myremotehost.example.com ``` - 在这种情况下,调用`Naming.lookup("rmi://myremotehost.example.com/service")`就可以正常工作了。 以上就是针对给定文件中的问题总结和详细解答。这些问题覆盖了Java环境配置、开发工具兼容性、浏览器加载Applet、数据库连接、Servlet输出以及Java Web服务器配置等多个方面,旨在帮助开发者更好地理解和解决问题。
Java常见问题集锦
问:
如何设置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,以确定错误的产生是与浏览器相关.
如果applet在appletviewer或Hotjava中运行一切正常,则错误的产生是由于浏览 器不完全兼容JDK而引起的. 此时,解决方法可以是使用Hotjava浏览器或者安装 Sun公司的Java Plugin.
如果applet在Hotjava浏览器或appletviewer中运行即发生错误,则应当根据错误 提示检查applet程序.
问:
当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码?
答:
这个问题的实现通常与各个JDBC driver的实现有关. 目前大多数JDBC driver采用本地编码格式来传输中文字符,例如中文字符"0x4175"会被转成"0x41"和"0x75"进行传输. 因此我们需要对JDBC driver返回的字符以及要发给JDBC driver的字符进行转换.
剩余20页未读,继续阅读
- 粉丝: 0
- 资源: 21
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript的在线考试系统(编号:65965158)(1).zip
- 五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成
- Linux下的cursor安装包
- springboot-教务管理系统(编号:62528147).zip
- 3dmmods_倾城系列月白_by_白嫖萌新.zip
- SVPWM+死区补偿(基于电流极性)+高频注入法辨识PMSM的dq轴电感(离线辨识)-simulink
- 微信跑腿小程序的设计与实现
- 基于 Java 实现的上位机通讯程序,可与单片机进行数据交换
- screentshot-2024.12.22-20.45.35.jpg
- 基于c51单片机,汇编语言实现的时钟,有仿真电路图