如何在jsp/servlet/applet中调用客户机的windows程序?(200分)

  • 主题发起人 主题发起人 lqg
  • 开始时间 开始时间
L

lqg

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在jsp/servlet/applet中调用客户机的windows程序?
是用RunTimes类吗?在applet中据说要修改策略文件,请给出详细做法。
 
告述我你的mail.
 
可以告诉我吗,我的email:zhfhq@hqu.edu.cn
 
to 江小鱼儿:
我的e-Mail:qg_li@263.net.
 
jsp/servlet 是运行在服务器端。不可能调用客户机的windows程序。
applet 虽然是运行客户端,但是 Java 安全机制规定不能随便调用客户机的本地程序。
这就是 Java 比 ActiveX 安全的原因。
所谓 “修改策略文件”意思就是修改Java配置,允许applet调用客户机的程序。
可是,万一它调用一个 format c:/ 呢?
 
试一下这个,我没有TEST,可以后把结果贴出来。
这是一个java调用记事本的例子
Runtime r=Runtime.getRuntime();
Process p=null;
String cmd[]={"notepad","/java/src/java/lang/Runtime.java"};
try{
p=r.exec(cmd);
}
catch(Exception e){
System.out.println("error executing: "+cmd[0]);
}

 
首先谢谢孙老师和kevinfu,然后再说声对不起,拖了这么长的时间。我已经把问题解决了。
因为前一阵子一直在忙别的 事情,近来code red 病毒大发作,学校的网络近乎瘫痪的其慢无比,
就一直没有把结果贴出来。测试程序的关键代码如下:

import java.awt.*;
import java.io.*;
import java.lang.*;
import java.applet.*;
public class FileExe extends Applet {
String myFile ;
String program;
String cmd[];
public void init() {
myFile =new String( "./tt.txt");
program = new String ("c:/winnt/notepad.exe");
cmd= new String [2];
cmd[0]=program;
cmd[1]=myFile;
exeFile( cmd );
}
public void exeFile(String[] cmd ) {
Runtime r=Runtime.getRuntime();
try{
r.exec(cmd);

} catch(Exception e){
System.out.println("error executing: "+cmd[0]);
System.out.println(e.toString());
}
}
}
另外还要生成一个策略文件exepolicy,授予该applet(也可以仅是该applet具有)执行tt.txt文件的权限(execute权限)。
这样就可以了。一个策略文件可以具有多个权限声明的。
不过我要执行的文档(word 文档和其他的格式文档如CAD文件)大部分都在服务器上,
主要是希望用户从服务器下载文档后当即打开它,并不需要先下载到客户机的某个目录后再打开,
这该如何实现呢?我对这方面的了解很少,问题很菜,见笑了。还请各位大虾尤其是孙老师和kevinfu
多多指点。
 
多人接受答案了。
 
后退
顶部