使用applet调用客户端程序

首先需要了解ie调用applet是需要访问jar包中的文件的,而jar包中的文件必须是经过签名认证的,否则会被浏览器禁止的。而jar包中的java类文件必须是继承自java.applet.Applet。

下面是applet签名的:
keytool -genkey -validity 1800 -keystore applet.store -alias applet   
keytool -export -keystore applet.store -alias applet -file applet.cer
jarsigner -keystore applet.store jasperreports-3.0.1-applet.jar  applet 

上面jasperreports-3.0.1-applet.jar里面的类文件继承了java.applet.Applet,是自己写的applet。

在这applet中我的代码如下(我实现的是一个简单的调用客户端的程序)
package com.isoftstone.ireport;

import java.applet.Applet;

public class CallIReportApplet extends Applet {

	static {
		System.setSecurityManager(null);
	}
	
	public void init(){
			
			System.out.println("callIreportApplet init()");
			String ireportSetUpBatStr = "D:\\Program Files\\JasperSoft\\iReport-3.0.0\\bin\\startup.bat";
			try {
				Runtime rt = Runtime.getRuntime();
				rt.exec(ireportSetUpBatStr);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} 
		}
	}



jsp页面调用applet的时候代码如下:
function aaa(){
  document.write('<OBJECT id="myApplet"');
  document.write('classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH="0" HEIGHT="0" MAYSCRIPT name="myApplet"');
  //jre的相对路径,也就是当前这个js所在的相对路径
  document.write('codebase="../../applets/jre-1_5_0_18-windows-i586-p.exe">');
  //你要调用的applet的全名,包名和文件名,该java类必须继承自applet
  document.write('<PARAM NAME="CODE" VALUE="com.isoftstone.ireport.CallIReportApplet" />');
  //applet的jar包所在的相对路径
  document.write('<PARAM NAME="CODEBASE" VALUE="../../applets" />');
  //applet的jar包名字
  document.write('<PARAM NAME="ARCHIVE" VALUE="CallIReport.jar" />');
  document.write('<PARAM NAME="type" VALUE="application/x-java-applet;version=1.5.0" />');
  document.write('<PARAM NAME="scriptable" VALUE="false" />');
  document.write('<PARAM NAME="REPORT_URL" VALUE="../../comm.view">');
  document.write('<comment>');
  document.write('<embed type="application/x-java-applet;version=1.5.0"');
  //你要调用的applet的全名,包名和文件名
  document.write('CODE="com.isoftstone.ireport.CallIReportApplet"');
  //applet的jar包所在的相对路径 和 jar包的名字
  document.write('JAVA_CODEBASE="../../applets" ARCHIVE="CallIReport.jar"');
  document.write('scriptable=false');
  //jre的相对路径,也就是当前这个js所在的相对路径
  document.write('pluginspage="../../applets/jre-1_5_0_18-windows-i586-p.exe">');
  document.write('<noembed></noembed>');
  document.write('</embed>');
  document.write('</comment>');
  document.write('</OBJECT>');
}

你可能感兴趣的:(java,jsp,浏览器,IE)