请联系我们

Java类 精彩问答

来源: 核心技术 高级编程 |  作者: administrator |  发布: 2002-9-02 00:00


天津市的王勇问:请问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: oolsjavasoft 和jdk1.2.2 : c: oolsjdk1.2.2 。我设置的环境变量为:

classpath=

C: oolsIBMVJava3.0eab untime30;

C:Toolsjdk1.2.2jrelib t.jar;

C: oolsjdk1.2.2lib ools.jar;

C: oolsjdk1.2.2libdt.jar;

C: oolsjdk1.2.2src.jar;

D:saintstudyjava test (存放applet程序)

path=

C: oolsjdk1.2.2in;

C: oolsIBMVJava3.0eabin;

在浏览器中运行时,报出如下错信息: 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页中加入一条语句:

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就不会有问题了。


* 部分内容来源于网络,版权属原作者所有,转载请注明来源。
打印 | 收藏此页 |  推荐给好友 | 举报