`

Java的Applet调用第三方jar包,web调用问题解决方案

阅读更多

 

昨天和今天主要纠结于Applet在Web调用不成功的问题。今天两天的奋战,终于将问题解决,

贴出来问题的解决方案,方便自己和他人。

 

情景一:单独的Applet,网页使用:

第一步,本地新建一个Applet文件(如DemoApplet.java),重写paint方法。代码如下:

  public void paint(Graphics g )

  {

   g.drawString("Hello World!",5,35);

  } 

在运行Applet这个文件时,会自动调用这个方法,写出"Hello World!"几个字。

 

第二步,新建网页htDemo.html

代码如下:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title>My applet 'DemoApplet' starting page</title>

  </head> 

  <body>   

    <applet codebase="." 

            code="DemoApplet.class" 

            name="DemoApplet" 

            width="320" 

            height="240">

    </applet>

  </body>

</html>

 

参数说明:

  1:code:指定applet需要应用类的class。

  2:codebase:指定applet类的存放路径。

  3:width:指定显示applet的空白区域宽度。

  4:height:指定显示applet的空白区域的高度。

      5.name:指定applet的名字,可选。

 

对于codebase的处理要格外小心,如果把编译后的DemoApplet.class和htDemo.html放在同级目录下,则

codebase="."即可。

第三步:

保存网页,点击运行网页,可以看到屏幕输出了"Hello World!".

 

情景二:applet引入第三方的jar包,网页调用。

这种情况比较烦人,这也是我纠结两天没才弄出来的原因。

步骤基本如下:

 

第一步:

我写了一个applet。修改了init方法,重写了paint方法,代码如下。

public void paint(Graphics g)

{

Output outClass = new Output();

g.drawString("hahaha",20,20);

g.drawString(outClass.getString(),10,10);

}

 

public void init() { 

setLayout(new FlowLayout()); 

add(new Button("预览")); 

}

 

Output为我写的一个工具类类(它的主要作用是为了测试引入第三方jar包时,applet调用的问题),它会引入了一个第三方的jar包叫做“jna.jar”。代码如下:

 

import com.sun.jna.NativeLong;

public class Output {

public String getString()

{

NativeLong m_lUserID = new NativeLong(1);//用户登录句柄

return "You are in the Output Class" +m_lUserID.intValue();

}

}

第二步:写一个demo2.html

<body>

<applet codebase="." 

code="DemoApplet.class" 

name="DemoApplet" 

archive="jna.jar"

width="320" 

height="240">

</applet>

</body>

 

参数说明:其他参数都一样,只有添加了archive="jna.jar"这个参数是用来书写你引入的jar包的。如果有多个jar包,通过","分割。

【注】

1.第三方的jar包要和编译过的TestSimpleApplet.class在同一个目录下。

2.工具类(outclass)编译所产生的class文件(output.class 和引入的其他类的编译文件)也要放在codebase所表明的文件夹下。

 

第三步:

找到浏览器默认的jre,在其目录,举例为:*盘:\*\j2re1.4.2_05\lib\security\java.policy

在grant{}中添加如下一行代码:

permission   java.security.AllPermission;   

第四步:

点击运行网页,就出现了我们要的结果了。

 

可能出现错误:

1.红色的叉,提示class无法找到。这就要注意查看applet的code 和codebase是否写对,.class和.jar

文件的位置是否正确。

2.security之类的错误。这主要就是因为要调用用户本地的文件,但是由于jave的安全机制原因,不让applet访问用户本地文件,所以会发生异常。此时,就需要给applet赋予访问权限,从而避免错误。

3.网页中显示空白一块,或是灰色。那就是发生了异常,但是没有显示出来。

此时就要在IE的选项->高级->选择Java(Sun)将JRE***用于<applet>。从而当网页运行applet程序时就会显示Java控制台。显示相应的异常错误,仔细观察,相信可以找到错误的原因。

 

如有不解,请参阅http://topic.csdn.net/u/20100318/14/950bd343-6077-4e24-ad3c-9833149a4e30.html

当时在这个帖子中有关于此调用的讨论。

 

 

 

 

 

 

 

3
0
分享到:
评论
2 楼 aspnetdb 2011-12-05  
xiaoshenglin 写道
感谢你的文章

不客气,欢迎交流。
1 楼 xiaoshenglin 2011-12-04  
感谢你的文章

相关推荐

    applet与jsp的交互

    NULL 博文链接:https://self4j.iteye.com/blog/932189

    js 动态调用 applet 内的方法示例程序

    步骤三:打包,使用命令:jar -cvf asbAttachmentUploadApplet.jar * 生成 asbAttachmentUploadApplet.jar 包; 步骤四:数字验证:jarsigner -keystore yourkey asbAttachmentUploadApplet.jar 对 ...

    一个用JAVA Applet做的批量上传客户端

    用JAVA Applet做的一个批量上传客户端,用户可以多选文件进行上传,服务端可使用ASP,PHP,JSP等实现。客户端会将文件分卷POST到服务端,服务端需要接收这部分文件并保存为临时文件;分卷上传结束后客户端将调用...

    java开源包1

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包8

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包4

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包11

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包6

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包9

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包5

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包101

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包10

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包3

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...

    JAVA上百实例源码以及开源项目

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java开源包2

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来...

    java开源包7

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java源码包4

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

    java源码包3

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

Global site tag (gtag.js) - Google Analytics