1
我製作了一個名爲test.jar的.jar文件,並試圖將其放到名爲login.html(全部本地)的網頁上。在applet標籤中,我把mysqlconnector.jar和test.jar放在歸檔部分。mySQL的Java Applet問題
當我嘗試使用運行小程序:小程序查看「文件:/// C:/test/login.html」小程序加載,但是當我嘗試登錄,然後點擊OK我收到以下錯誤
Exception in thread "AWT-EventQueue-1" java.lang.ExceptionInInitializerError
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java
:286)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at staffDatabase.queryStaffID(staffDatabase.java:76)
at searchStaff.readFromLogin(searchStaff.java:14)
at loginFrame$1.actionPerformed(loginFrame.java:65)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19
95)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242
)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.security.AccessControlException: access denied (java.util.Proper
tyPermission file.encoding read)
at java.security.AccessControlContext.checkPermission(AccessControlConte
xt.java:323)
at java.security.AccessController.checkPermission(AccessController.java:
546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:12
85)
at java.lang.System.getProperty(System.java:650)
at com.mysql.jdbc.StringUtils.<clinit>(StringUtils.java:70)
... 30 more
我看了其他幾個網站,建議
Caused by: java.security.AccessControlException: access denied (java.util.Proper
tyPermission file.encoding read)
是由於從用policytool缺乏讀取權限,但我已經把所有的權限,而這也沒有什麼區別。
任何幫助,將不勝感激!到目前爲止,我到處都找不到運氣,謝謝!
簽名應該做 – Alfabravo 2012-03-06 19:05:16
用於applet和JWS應用程序的安全沙箱。是相同的,只使用政策略有差異。差異的例子是1)即使是已簽名的applet也不能調用'System.exit(n)'2)JWS應用程序。不僅擁有「全權」和沙盒,而且還有另一個級別。否則,+1。避免使用策略文件,它們僅適用於神祕的情況(如開發,儘管我在版本中籤名Jar,如果需要的話)。 – 2012-03-06 19:28:38
@AndrewThompson - JNLP確實沒有給予OP足夠的權限,無需簽名即可連接到數據庫。我會更新我的答案。 – Perception 2012-03-06 19:59:14