Jakarta ee java.lang.ClassNotFoundException:org.apache.derby.iapi.services.property.PropertyUtil

Jakarta ee java.lang.ClassNotFoundException:org.apache.derby.iapi.services.property.PropertyUtil,jakarta-ee,netbeans,glassfish,derby,classnotfoundexception,Jakarta Ee,Netbeans,Glassfish,Derby,Classnotfoundexception,当我在Netbeans中创建Java web应用程序并尝试部署和运行它时,会引发以下异常: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/derby/iapi/services/property/PropertyUtil at org.apache.derby.impl.drda.NetworkServerControlImpl.getPropertyInfo(Unknown Source)

当我在Netbeans中创建Java web应用程序并尝试部署和运行它时,会引发以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/derby/iapi/services/property/PropertyUtil
    at org.apache.derby.impl.drda.NetworkServerControlImpl.getPropertyInfo(Unknown Source)
    at org.apache.derby.impl.drda.NetworkServerControlImpl.<init>(Unknown Source)
    at org.apache.derby.drda.NetworkServerControl.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.derby.iapi.services.property.PropertyUtil
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 3 more
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/derby/iapi/services/property/PropertyUtil 位于org.apache.derby.impl.drda.NetworkServerControlImpl.getPropertyInfo(未知源) 位于org.apache.derby.impl.drda.NetworkServerControlImpl。(未知来源) 位于org.apache.derby.drda.NetworkServerControl.main(未知源) 原因:java.lang.ClassNotFoundException:org.apache.derby.iapi.services.property.PropertyUtil 位于java.net.URLClassLoader$1.run(URLClassLoader.java:202) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:190) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:306) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:247) ... 3个以上 清洁和建造工作良好。早些时候,我曾经在我现在面临问题的机器上成功地部署和运行另一个JavaWeb应用程序


我使用的是NetBeans7.1。我试图升级到Netbeans 7.3,但这并没有解决问题。我还尝试将MySQL连接器/J JAR文件放入Glassfish的
/lib
文件夹中,但这并没有解决问题。

为Derby类获取ClassNotFoundException有两个基本原因:

  • 类路径中缺少一个Derby jar。例如,您可能将derbynet.jar放在类路径中,但没有derby.jar
  • 类路径中有多个Derby JAR副本,并且版本不兼容。例如,您的类路径中可能有两个不同的Derby.jar类,旧的类与新的类不兼容
  • 有三件事会让事情变得更复杂:

  • Derby的jar文件通常被捆绑到其他包中。例如,我认为有一个与Glassfish捆绑在一起的Derby副本,因此与Glassfish捆绑在一起的Derby版本与应用程序打包的版本之间可能存在冲突
  • 对于现代版本的Java,Java虚拟机本身将在启动时“自动加载”Derby JDBC驱动程序,这意味着有时Derby在您打算加载它之前就已经加载了,这会使您控制使用哪个版本的Derby的能力变得复杂
  • JavaEE类路径规则非常复杂,应用程序的运行类路径由每个应用程序的类路径位置、应用程序服务器提供的类路径位置和系统类路径位置构成
  • Derby“sysinfo”工具旨在帮助诊断类路径问题,因此您可以尝试使用它来更完整地了解在类路径上找到了哪些Derby JAR副本


    希望这有帮助

    获取Derby类的ClassNotFoundException有两个基本原因:

  • 类路径中缺少一个Derby jar。例如,您可能将derbynet.jar放在类路径中,但没有derby.jar
  • 类路径中有多个Derby JAR副本,并且版本不兼容。例如,您的类路径中可能有两个不同的Derby.jar类,旧的类与新的类不兼容
  • 有三件事会让事情变得更复杂:

  • Derby的jar文件通常被捆绑到其他包中。例如,我认为有一个与Glassfish捆绑在一起的Derby副本,因此与Glassfish捆绑在一起的Derby版本与应用程序打包的版本之间可能存在冲突
  • 对于现代版本的Java,Java虚拟机本身将在启动时“自动加载”Derby JDBC驱动程序,这意味着有时Derby在您打算加载它之前就已经加载了,这会使您控制使用哪个版本的Derby的能力变得复杂
  • JavaEE类路径规则非常复杂,应用程序的运行类路径由每个应用程序的类路径位置、应用程序服务器提供的类路径位置和系统类路径位置构成
  • Derby“sysinfo”工具旨在帮助诊断类路径问题,因此您可以尝试使用它来更完整地了解在类路径上找到了哪些Derby JAR副本


    希望这有帮助

    那台机器上唯一的问题是,有人删除Java。:(

    那台机器上唯一的问题是,有人删除Java。:(

    你有什么NB版本,尝试升级到7.3@Daniel:NB 7.1。是的,我只是现在才尝试(正在下载).但之前,JSF项目曾在那台机器上运行。您使用的是哪台应用程序服务器?有一次,我使用Glassfish和Netbeans时出现了相同的错误,但缺少PostgreSQL驱动程序。我通过使用驱动程序(.jar)修复了它在Glassfish安装中的/lib文件夹上。@DiogoMoreira:我正在使用Glassfish和NetBeans。使用mysql并拥有mysql驱动程序。Glassfish安装中的/lib文件夹中是否有mysql驱动程序?您有什么NB版本,请尝试升级到7.3@Daniel:NB 7.1。是的,我现在才尝试(正在下载).但之前,JSF项目曾在那台机器上运行。您使用的是哪台应用程序服务器?有一次,我使用Glassfish和Netbeans时出现了相同的错误,但缺少PostgreSQL驱动程序。我通过使用驱动程序(.jar)修复了它在Glassfish安装中的/lib文件夹中。@DiogoMoreira:我使用Glassfish&NetBeans。使用mysql并拥有mysql驱动程序。Glassfish安装中的/lib文件夹中是否有mysql驱动程序