我正在尝试在本地运行未签名的applet jar。
它使用几个jar依赖项,其中一些需要本机dll。但是我不知道如何在applet上将这些dll指向浏览器。
当我使用eclipse applet viewer运行时,
System.setProperty("jna.library.path", "<path>");
它运作良好。
但是当我在IE 10上部署它时,它给了我以下异常
Caused by: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "jna.library.path" "write")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source)
at java.lang.System.setProperty(Unknown Source)
at com.neurotec.samples.SimpleFacesApplication.<init>(SimpleFacesApplication.java:88)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
我想知道从浏览器加载时放置这些dll的位置。 提前谢谢。
更新
我尝试将所有dll添加到名为nativelibs.jar
的新jar文件中,并将条目<nativelib href="nativelibs.jar"/>
添加到我的applet JNLP文件中。但问题仍然是相同的给予
java.lang.UnsatisfiedLinkError: Unable to load library 'NCore': The specified module could not be found.
at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:194)
at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:283)
at com.neurotec.lang.NCore.<clinit>(NCore.java:104)
现在我的JNLP文件的资源标签就像
<resources>
<!-- Application Resources -->
<j2se version="1.7+" href="http://java.sun.com/products/autodl/j2se" />
<jar href="myApplet.jar" main="true" />
<nativelib href="nativelibs.jar"/>
</resources>
任何人都有想法,我的错误是什么?