天津市的王勇问:请问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就不会有问题了。