程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java常見問題集錦

Java常見問題集錦

編輯: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的字符進行轉換.

  當用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.InetAddress類,它將查詢TCP/IP的主機名, 包括IP地址到主機名的映射和主機名到IP地址的映射.在Windows平台,這種查詢功能 是由本地的Windows Socket庫來實現的. 因此延時是發生在Windows庫中,而非RMI中.

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved