当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java进阶

Java类 精彩问答


  天津市的王勇问:请问JAVA中两个字符串如何比较判断?
  答:你可以试试下面这种方法:
  equals
  equalsIgnoreCase
  上面两个返回的是bool。
  compareTo
  这个返回的是int ,返回0表示相等。
  郑州市的刘波问:static声明有什么用?不用它声明有什么不同?
  答:使用 public static type variable或者public static finall type variable可以定义全局变量和全局常量。Static方法是类方法与实例方法不同,各实例可统一调用相同的类方法。
  成都市的傅军问:我想用rmi,结果程序写好后编译非常成功,但我不知道如何启动服务端程序和注册表。不知能否指点一下。
  答:你可以试试这样做:
  
  1.start RMI Bootstrap
  
  start rmiregistry (windows NT)
  
  rmiregistry& (solaris)
  
  2.start server
  
  java -D java.rmi.server.codbase = http://yourhost/..../yourcode
  石家庄的庞绍熙问:我无法在IE5.0中显示用swing 编写的 applet。我在系统中已经安装了plug-in:c:\tools\javasoft\ 和jdk1.2.2 : c:\tools\jdk1.2.2\ 。我设置的环境变量为:
  classpath=
  
  C:\tools\IBMVJava3.0\eab\runtime30;
  
  C:\Tools\jdk1.2.2\jre\lib\rt.jar;
  
  C:\tools\jdk1.2.2\lib\tools.jar;
  
  C:\tools\jdk1.2.2\lib\dt.jar;
  
  C:\tools\jdk1.2.2\src.jar;
  
  D:\saint\study\java test (存放applet程序)
  path=
  C:\tools\jdk1.2.2\bin;
  C:\tools\IBMVJava3.0\eab\bin;
  
  在浏览器中运行时,报出如下错信息: can not be instantiated。我不知道是什么原因,希望能够得到帮助。
  答:到Sun的网站上去下载一个JRE,安装到你的机器上以更新你的JVM ,再下载一个HTMLConver转换你的HTML代码就可以了。
  广州市的汤方梅问:现在我有一个用c语言编写的API,我需要在Java 的程序中调用这个API。请问我该怎么写这个API。要求既有源文件,又有Obj文件。
  答:具体过程不讲了,你试试用native方法吧。你可以在Java程序中定义一个native方法,再用javah 编译包含该native方法的.class文件。这样会生成.h的头文件,再用javah -stub [class文件]生成stub文件。然后你就可以include 刚才生成的.h文件,制作一个dll。
  
  汕头市的薛建荣问:想在JAVA应用程序中调用C++写的DLL,该如何着手?
  答:如果你有该 DLL 的源码,你可以按照 Java 中 native 库的编写办法,首先写出程序框架,然后生成头文件,最后按照头文件改写原来的 C/C++ 程序,重新编译生成新结构的 DLL。如果有源码的话,改写这一步应该还是可行的。
  上海市的梁平问: 有没有办法在load一个applet的时候在applet区域显示其进度?
  答:如果准备显示在状态条上,你可以试试这种实现方法:
  public class test extends applet {
  public void init() {
  showStatus("Loading applet...");
  }
  }
  如果想显示在Applet load 区内,则可以试试这种实现方法:
  import java.applet.Applet;
  import java.awt.Graphics;
  public class Simple extends Applet {
  StringBuffer buffer;
  public void init() {
  buffer = new StringBuffer();
  addItem("initializing... ");
  }
  public void start() {
  addItem("starting... ");
  }
  public void stop() {
  addItem("stopping... ");
  }
  public void destroy() {
  addItem("preparing for unloading...");
  }
  void addItem(String newWord) {
  System.out.println(newWord);
  buffer.append(newWord);
  repaint();
  }
  public void paint(Graphics g) {
  //Draw a Rectangle around the applet's display area.
  g.drawRect(0, 0, size().width - 1, size().height - 1);
  //Draw the current string inside the rectangle.
  g.drawString(buffer.toString(), 5, 15);
  }
  南宁市的周重亿问:我想让打开的文件对话框不去选择一个文件而是去选择一个目录,确定后可以返回该目录的完整路径。我该怎么办?
  答:你可以先选择文件,再返回文件所在的目录。或者写一个CLASS来继承JFILECHOOSET类。具体程序的编法限于篇幅我就不给出了。
  深圳市的路国德问:Java 程序中如何执行其他的程序? 使用了 exec() 之后,怎样才能使用 I/O redirection ?
  答:以UNIX 为例(Windows系统相似):
  
  import java.io.*;
  import java.util.*;
  class IoRedirect {
  public static void main(String Argv[]) {
  try {
  String[] command = {"/bin/sh", "-c", "/bin/ls > out.dat"};
  Process p = Runtime.getRuntime().exec(command);
  p.waitFor();
  System.out.println("return code: " + p.exitValue());
  } catch (IOException e) {
  System.err.println("IO error: " + e);
  } catch (InterruptedException e1) {
  System.err.println("Exception: " + e1.getMessage());
  }
  }
  }
  北京市的张永林问:何处可以下载JSDK?
  答:你可以在这个地方找到JSDK:http://java.sun.com/products/servlet/download.html
  南昌市的朱捷问:如何用Java语言实现打印?
  答:如果你使用JDK1.1.X,可以试试这样做:
  #import java.awt.*;
  public class print{
  public static void main(String args[])
  {
  Frame f = new Frame("tet");
  f.pack( );
  PrintJob pj = f.getToolkit().getPrintJob(f, "print1", null);
  if( pj != null){
  Graphics g = pj.getGraphics( );
  g.fillOval(5,5,150,100);
  g.dispose( );
  pj.end();
  }
  System.exit(0);
  }
  }
  武汉市的赵嘉问:请问如何用beep() 函数?
  答:在循环语句里加入:
  Tookit.getDefaultTookit().beep(),
  就可以了。
  绵阳市的杨冰问:在windows98下装Apache1.3.9加jserv和GNUJSP1.0、JDK1.2.2、JSDK2.0时发现中文无法正常显示。要么出现乱码,要么出错。请问我该怎么办?
  答:你必须在安装中注意以下几点:
  1.修改区域设置:在控制面版中选择区域设置,设为英语(美国)。然后重新启动系统,一切就都正常了。
  2.在JSP页中加入一条语句:
  <%@ page contentType="text/html;charset=gb2312" %>
  JSP显示就正常了。
  3.在编译servlet和JSP时加入代码选项。编译servlet使用Javac -encoding iso8859_1 myservlet.java
  在JSP的zone配置文件中,修改编译参数为:
  compiler=builtin-javac -encoding ISO8859_1
  使用这种方法后,不需要作其他的改动就可以正常显示中文了。
  4:在servlet源程序中加入代码变换语句。如
  try{
  out.println(new ( (new String("你好")).getBytes("GBK"),"ISO8859_1"))
  }
  catch( UnsupportedEncodingException e)
  {
  .......
  }
  此外,使用这种方法一定要注意捕获Unsupported Encoding Exception是否异常。
  厦门市的李文华问:当用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("test");
  ow.flush();
  ow.close();
  }
  成都的刘波问:为什么我在Server端发出的汉字在Client端却成了乱码?
  答:如果是基于1.1API的,就应该用Reader和Writer,它们有内码unicode自动转换功能。如你的网络传输用的是BufferedReader与BufferedWriter,文件操作用的是FileReader与FileWriter或其他1.0API,采用1.1API就不会有问题了。
  
  
  
  
相关内容
赞助商链接