我写了一个基础的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可否显示在网页上。
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可否显示在网页上。
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
在getString()这个方法里面,
m_lUserID.intValue();你确认这一行能拿到数据吗?
建议先写一个测试程序看能不能拿到这个值
可能是你这个写的有问题。
这样写试试。
这个东西和<link href="_pub/style.css" rel="stylesheet" type="text/css" />这个应该是同样的道理。
其实一共就这么几种写法,自己很容易试出来。我以前搞过,忘了。
还有,你应该看看浏览器中的java控制台的异常信息。
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文件。你看对不?估计是这方面的问题,我再去网上找找看。
2.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)