更改netbeans中的清单(Trusted-Library = true属性)

时间:2013-04-26 11:14:16

标签: java security jar applet

我需要使用Trusted-Library = true属性标记JAR文件......不知何故。当我在清单中添加Trusted-Library = true时,我得到类未找到异常。我在Netbeans中看到的清单是,

 Manifest-Version: 1.0
 X-COMMENT: Main-Class will be added automatically by build

当我使用项目属性中的webstart选项并从签名部分选择Trusted-Library时,我找不到相同的类。

我该怎么办?

编辑:jar中的清单:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
X-COMMENT: Main-Class will be added automatically by build
Created-By: 1.6.0_45-b06 (Sun Microsystems Inc.)

Name: JTwainLicense.class
SHA1-Digest: L4BTAOFRNEyeRA9Tw1Z3EQ0Ud5c=

Name: com/asprise/util/jtwain/web/TestApplet.class
SHA1-Digest: 8EetVUQhuvNH4urJB3oDG66vYas=

Name: com/asprise/util/jtwain/web/TestConstants.class
SHA1-Digest: ycjvP24IF/ggDBtj4v/r5Bz5nBY=

Name: com/asprise/util/jtwain/web/TestApplet_buttonScan_actionAdapter.class
SHA1-Digest: EWMDyf2p4ka8jOD8Fr2Fbrj/Tf0=

Name: META-INF/INDEX.LIST
SHA1-Digest: ymizlIYUM8SXgYNjYA30r1G0X7A=

Name: com/asprise/util/jtwain/web/ImageDisplayPanel.class
SHA1-Digest: Ae0oc23YVy8W9oTJoiRT2M1o4cY=

找不到类的清单错误。

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
X-COMMENT: Main-Class will be added automatically by build
Trusted-library: true
Created-By: 1.6.0_45-b06 (Sun Microsystems Inc.)

Name: JTwainLicense.class
SHA1-Digest: L4BTAOFRNEyeRA9Tw1Z3EQ0Ud5c=

Name: com/asprise/util/jtwain/web/TestApplet.class
SHA1-Digest: 8EetVUQhuvNH4urJB3oDG66vYas=

Name: com/asprise/util/jtwain/web/TestConstants.class
SHA1-Digest: ycjvP24IF/ggDBtj4v/r5Bz5nBY=

Name: com/asprise/util/jtwain/web/TestApplet_buttonScan_actionAdapter.class
SHA1-Digest: EWMDyf2p4ka8jOD8Fr2Fbrj/Tf0=

Name: META-INF/INDEX.LIST
SHA1-Digest: ymizlIYUM8SXgYNjYA30r1G0X7A=

Name: com/asprise/util/jtwain/web/ImageDisplayPanel.class
SHA1-Digest: Ae0oc23YVy8W9oTJoiRT2M1o4cY=

堆栈跟踪:

ERROR: com/asprise/util/jtwain/SourceManager
Exception in thread "AWT-EventQueue-3" java.lang.NoClassDefFoundError:            com/asprise/util/jtwain/SourceManager
at com.asprise.util.jtwain.web.TestApplet.buttonScan_actionPerformed(UploadApplet.java:388)
at com.asprise.util.jtwain.web.TestApplet_buttonScan_actionAdapter.actionPerformed(UploadApplet.java:548)
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)
....

1 个答案:

答案 0 :(得分:2)

使用Trusted-Library:true使jar文件加载到一个单独的类加载器中,该类加载器是加载Applets / WebStart应用程序的类加载器的父类。

请参阅:https://forums.oracle.com/forums/thread.jspa?threadID=2278127 还看到: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/mixed_code.html

这意味着您的受信任代码无法访问不受信任的代码,除非通过Thread.currentThread()。getContextClassLoader()。

您还可以将Trusted-Library:true添加到您所依赖的所有jar中。