网页中applet当调用第三方jar包时,applet不显示.急!!!!

Achilles_Dynasty 2010-03-18 02:24:42
我写了一个基础的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("预览"));
}
outclass为我写的一个工具类类,引入了一个第三方的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();
}
}
网页调用1.htm,部分代码如下:
<body>
<applet codebase="."
code="TestSimpleApplet.class"
name="TestSimpleApplet"
archive="jna.jar"
width="320"
height="240">
</applet>
</body>
【注】Output.class,TestSimpleApplet.class,jna.jar,1.htm均放在同一目录下。
点击调用,
实际显示结果“hahaha”,一个"预览"button.
期待结果:“hahaha”,一个"预览"button.还有一句"You are in the Output Class 1"。
结果说明:applet调用成功,但是涉及到jna包调用的问题,就显示不出来结果。情况就是这样,那位兄台可以回答我的问题,不胜感谢。弄了两天了。
之所以调用这个jar包,主要是因为我需要调用一些c++的基础DLL,必须调用。所以先测试一下调用后applet可否显示在网页上。
...全文
1407 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiang_xiaohan 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
1.jna是否还有关联的包?
2.applet的安全问题。
[/Quote]
可是。。。问题是怎么解决的呢,还要就是浏览器的兼容问题,,。。问题多多啊,啊啊啊啊
liu418028499 2012-05-02
  • 打赏
  • 举报
回复
楼主applet中这个问题有没有办法解
network: 未找到高速缓存项 [url: http://localhost:8088/PQEP//jar/com/mathworks/jmi/Matlab.class,版本: null]
network: 正在使用代理 DIRECT 连接 http://localhost:8088/PQEP//jar/com/mathworks/jmi/Matlab.class
network: 正在使用代理 DIRECT 连接 http://localhost:8088/
network: 正在使用代理 DIRECT 连接 http://localhost:2100/
network: 正在使用代理 DIRECT 连接 http://localhost:2876/
matlabcontrol.MatlabConnectionException: Support code location was determined improperly; location does not actually exist. Location determined as: C:\PQEP\jar\matlabcontrol-4.0.0.jar
at matlabcontrol.Configuration.getSupportCodeLocation(Configuration.java:232)
at matlabcontrol.RemoteMatlabProxyFactory.createProcess(RemoteMatlabProxyFactory.java:278)
at matlabcontrol.RemoteMatlabProxyFactory.requestProxy(RemoteMatlabProxyFactory.java:116)
at matlabcontrol.RemoteMatlabProxyFactory.getProxy(RemoteMatlabProxyFactory.java:134)
at matlabcontrol.MatlabProxyFactory.getProxy(MatlabProxyFactory.java:81)
at com.ordinov.pqep.util.test.MatlabUtil.init(MatlabUtil.java:31)
at com.ordinov.pqep.util.test.Test$test$1.actionPerformed(Test.java:42)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException
at com.ordinov.pqep.util.test.MatlabUtil.isConnected(MatlabUtil.java:81)
at com.ordinov.pqep.util.test.Test$test$1.actionPerformed(Test.java:43)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Achilles_Dynasty 2010-03-18
  • 打赏
  • 举报
回复
恩。刚才我看调试信息,应该是安全问题,解决了。发分了。
bayougeng 2010-03-18
  • 打赏
  • 举报
回复
1.jna是否还有关联的包?
2.applet的安全问题。
Achilles_Dynasty 2010-03-18
  • 打赏
  • 举报
回复
"bayougeng"按照你的说法做的。异常信息是。
Reading certificates from 11 http://localhost:8080/ThirdProject/jna.jar | C:\Documents and Settings\Administrator\Application Data\Sun\Java\Deployment\cache\6.0\53\351b4e75-1e310892.idx
Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError
at com.sun.jna.NativeLong.<clinit>(NativeLong.java:23)
at Output.getString(Output.java:5)
at TestSimpleApplet.paint(TestSimpleApplet.java:104)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied (java.util.PropertyPermission jna.boot.library.path read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at com.sun.jna.Native.loadNativeLibrary(Native.java:645)
at com.sun.jna.Native.<clinit>(Native.java:108)
... 16 more
Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.NativeLong
at Output.getString(Output.java:5)
at TestSimpleApplet.paint(TestSimpleApplet.java:104)
看起来好像是不让访问本地的jar文件。你看对不?估计是这方面的问题,我再去网上找找看。
bayougeng 2010-03-18
  • 打赏
  • 举报
回复
archive="./jna.jar"
这样写试试。
这个东西和<link href="_pub/style.css" rel="stylesheet" type="text/css" />这个应该是同样的道理。
其实一共就这么几种写法,自己很容易试出来。我以前搞过,忘了。
还有,你应该看看浏览器中的java控制台的异常信息。
Achilles_Dynasty 2010-03-18
  • 打赏
  • 举报
回复
回复“bayougeng”。我也觉得是包引入的问题,但是除了这么写,我也不知道有什么写法了。
Achilles_Dynasty 2010-03-18
  • 打赏
  • 举报
回复
回复"xiesisi3".这个我确定,因为这个程序我测试许多遍了。绝对没有问题。
bayougeng 2010-03-18
  • 打赏
  • 举报
回复
archive="jna.jar"
可能是你这个写的有问题。
xiesisi3 2010-03-18
  • 打赏
  • 举报
回复
初始化异常
在getString()这个方法里面,
m_lUserID.intValue();你确认这一行能拿到数据吗?
建议先写一个测试程序看能不能拿到这个值
Achilles_Dynasty 2010-03-18
  • 打赏
  • 举报
回复
用AppletViewer调用该html。有错误信息,我打印出来一部分。感觉上就是包问题。NativeLong就是我调用包时所有。
Exception in thread "AWT-EventQueue-1" java.lang.ExceptionInInitializerError
at com.sun.jna.NativeLong.<clinit>(NativeLong.java:23)
at Output.getString(Output.java:5)
at TestSimpleApplet.paint(TestSimpleApplet.java:104)
at sun.awt.RepaintArea.paintComponent(RepaintArea.java:248)
at sun.awt.RepaintArea.paint(RepaintArea.java:224)
at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:306)
at java.awt.Component.dispatchEventImpl(Component.java:4706)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchTh
ad.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThrea
java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchTh
ad.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:16

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:16

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.security.AccessControlException: access denied (java.util.Prop
tyPermission jna.boot.library.path read)
at java.security.AccessControlContext.checkPermission(AccessControlCon
xt.java:323)
at java.security.AccessController.checkPermission(AccessController.jav
546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:
85)
at java.lang.System.getProperty(System.java:650)
at com.sun.jna.Native.loadNativeLibrary(Native.java:645)
at com.sun.jna.Native.<clinit>(Native.java:108)
... 16 more
Achilles_Dynasty 2010-03-18
  • 打赏
  • 举报
回复
这个不是静态网页吗?需要服务器吗?不过,我开始也试过放在tomcat服务器下了。貌似也不行。
xiesisi3 2010-03-18
  • 打赏
  • 举报
回复
我是说,你点开网页后,后台服务器有没有出错信息
xiesisi3 2010-03-18
  • 打赏
  • 举报
回复
看起来好象没什么问题,后台服务器报错了吗?
Achilles_Dynasty 2010-03-18
  • 打赏
  • 举报
回复
补充一下,单独用MyEclipse运行TestSimpleApplet.java文件是可以产生正确的结果的。就网页调用不行。期待中。。。
Achilles_Dynasty 2010-03-18
  • 打赏
  • 举报
回复
顶一下,大家多多帮忙啊。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧