供了 zigbert 工具和 Cap ability API, 而 IE 则需要使用 CAB 文件. 但是,无论是 Netscape 工具产生的 签名 applet, 还是用 IE 产生的签名 applet,都不可以在其它的浏览器中运行. 如果要使 JDK 产生的签名 applet 能够在 Netscape 或 IE 中运行,解决方法是在 Netsca pe 或 IE 中安装 Java Plugin,则用 JDK 实现的签名 applet 就可以在这两种 浏览器中运行. 程序库, 问: 用 JNI 技术可以从 Java 应用中调用 C 程序库,但是如何使该 C 程序库可以调用另外的 程序库? C
程序库? 答: 如果一个被 Java 调用的 C 程序库 C1 仍需要调用另外一个 C 程序库 C2,那么在编译 C1 的时候应当联接程序库 C2,步骤如下(Solaris 平台): 编写调用 C 库的 Java 文件,并编译.
javac java 文件名 产生 C 程序头文件 javah -jni java 文件名(不带后缀.java) 编写被 Java 调用的 C 程序 C1.c,以及被 C1 调用的 C2.c,并编译. cc -G -Iinclude 路径名 C2.c -o libC2.so cc -G -Iinclude 路径名 -lC2 C1.c -o libC1.so 设置环境变
量 setenv LD_LIBRARY_PATH libC1.so,libC2.so 所在路径:${LD_LIBRARY_PATH} 运行 java 应用 语言中, 机文件
系统中的所有驱动器名? 问: 在 Java 语言中,如何列出 PC 机文件系统中的所有驱动器名? 答: 在 Java 2 版本中,java.io 包中的 File 类新增加了方法 listRoots()可以实现这一功 能. Runtime.exec("ls")没有任何输出 没有任何输出? 问: 为什么 Runtime.exec("ls")没有任何输出? 答: 调用 Runtime.exec 方法将产生一个本地的进程,并返回一个 Process 子类的实例,该实 例可用于控制进程或取得进程的相关信息. 由于调用 Runtime.exec 方法所创建的子进程没 有自己的终端或控制台,因此该子进程的标准 IO(如 stdin,stdou,stderr)都通过 Process.g etOutputStream(),Process.getInputStream(), Process.getErrorStream()方法重定向给 它的父进程了.用户需要用这些 stream 来向 子进程输入数据或获取子进程的输出. 所以正 确执行 Runtime.exec("ls")的例程如下: try { process = Runtime.getRuntime().exec (command); InputStreamReader ir=newInputStreamReader(process.getInputStream()); LineNumberReader input = new LineNumberReader (ir); String line; while ((line = input.readLine ()) != null) System.out.println(line); } catch (java.io.IOException e){ System.err.println ("IOException " + e.getMessage()); } applet,以使 能够访问本地资源? 问: 如何产生签名 applet,以使 applet 能够访问本地资源? 答: 在 jdk1.1 中,可以使用 javakey 命令来产生公钥,私钥,证书和签名的 jar 文件,详细资
料 请参考: java.sun/security/usingJavakey.html 而 java 2 对签名机制做 了比较大的改进,允许用户更灵活地设置安全权限.Java 2 提供了三个工具:keytool,polic ytool 和 jarsigner 来实现签名 applet.例如,Joe 编写了一个签名 applet:SignedApplet.j ava,那么产生一个简单的签名 applet 的过程如下: //产生密钥,密钥别名为 joe,口令为 sign12,存放在密钥库 joestore 中 keytool -genkey -alias joe -keyp