【问题标题】:Applet Trouble : java.lang.NoClassDefFound小程序问题:java.lang.NoClassDefFounderror
【发布时间】:2012-09-18 23:42:10
【问题描述】:

我在使用适用于 u.are.u 4500 生物识别指纹读取器的 SDK 的小程序上遇到了一些问题。
当我使用 NetBeans 在本地测试小程序时,小程序工作正常。

问题是当我尝试发布小程序时。

我总是得到“java.lang.NoClassDefFound”。 我修改了 java 配置,使服务器配置和我的工作站配置匹配。

SDK 安装在 c:\java\jdk1.7.0_07
JRE 安装在 c:\java\jre7

生物指纹识别器的 jar 文件是:

  • dpfpenrollment.jar
  • dpfpverification.jar
  • dpotapi.jar
  • dpotjni.jar

类路径是:

C:\Java\jdk1.7.0_07\jre\lib\ext;
C:\Java\jdk1.7.0_07\jre\lib\ext\mysql-connector-java-5.1.22-bin.jar;
C:\Java\jdk1.7.0_07\jre\lib\ext\dpfpenrollment.jar;
C:\Java\jdk1.7.0_07\jre\lib\ext\dpfpverification.jar;
C:\Java\jdk1.7.0_07\jre\lib\ext\dpotapi.jar;
C:\Java\jdk1.7.0_07\jre\lib\ext\dpotjni.jar;

JAVA_HOME 是:

c:\java\jre7

我试过把jar文件放到lib文件夹下,结果是一样的。 我用谷歌搜索了这个错误,但没有发现任何东西可以帮助我解决这个问题。

任何帮助表示赞赏...
谢谢

【问题讨论】:

  • 您不应该将 MySQL 连接器等放在 jre/lib/ext 目录中。这不是它的用途。

标签: java applet japplet


【解决方案1】:

类路径是:

C:\Java\jdk1.7.0_07\jre\lib\ext;
C:\Java\jdk1.7.0_07\jre\lib\ext\mysql-connector-java-5.1.22-bin.jar;
C:\Java\jdk1.7.0_07\jre\lib\ext\dpfpenrollment.jar;
C:\Java\jdk1.7.0_07\jre\lib\ext\dpfpverification.jar;
C:\Java\jdk1.7.0_07\jre\lib\ext\dpotapi.jar;
C:\Java\jdk1.7.0_07\jre\lib\ext\dpotjni.jar;

不,不,不。正如 EJP 所提到的,这不是 ext 目录的用途。此外,最终用户不会在ext 目录中拥有这些 Jars,即使有,它们也不会被添加到小程序的运行时类路径中。

如果小程序需要这些罐子,则需要将它们放在服务器上可访问的路径中,而 codebase 应指向该位置,archive 属性可能类似于:

archive='mysql-connector-java-5.1.22-bin.jar,dpfpenrollment.jar,dpfpverification.jar,dpotapi.jar,dpotjni.jar'

MySQL jar 也有点令人担忧。小程序不应该直接访问数据库,而是应该通过服务器端功能来调节访问。如果您的小程序可以访问数据库,恶意用户可以对其进行逆向工程并直接访问数据库。

【讨论】:

    猜你喜欢
    • 2017-11-17
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-04
    相关资源
    最近更新 更多