Java NoClassDefFoundError eventhough类位于同一文件夹中

Java NoClassDefFoundError eventhough类位于同一文件夹中,java,classpath,Java,Classpath,我执行了一个主类,得到了以下错误和跟踪 这是控制台命令: java-cp。net.sf.tinyPayroll.Main 你的例外情况是: NoClassDefFoundError:无法初始化类org.hsqldb.Trace 这并不意味着它在类路径中找不到类org.hsqldb.Trace,而是意味着由于某种原因,该类无法初始化 它通常意味着在尝试将值分配给静态字段或尝试在静态块中执行某些代码时引发了运行时异常 例如,我们将在接下来的案例中遇到此类问题: class Trace {

我执行了一个主类,得到了以下错误和跟踪

这是控制台命令:

java-cp。net.sf.tinyPayroll.Main

你的例外情况是:

NoClassDefFoundError
无法初始化类
org.hsqldb.Trace

这并不意味着它在类路径中找不到类
org.hsqldb.Trace
,而是意味着由于某种原因,该类无法初始化

它通常意味着在尝试将值分配给静态字段或尝试在静态块中执行某些代码时引发了
运行时异常

例如,我们将在接下来的案例中遇到此类问题:

class Trace {

    static MyClass foo = MyClass.newInstance(); // If it fails while calling newInstance

    static {
        SomeClass.init(); // If it fails while calling SomeClass.init()
    }
    ...
}

正如Nicolas所提到的,这并不意味着它在类路径中找不到类
org.hsqldb.Trace
,这意味着由于某种原因该类无法初始化。 我已经检查了代码(这可能会因版本而异)
在类中,它有一些进行一些处理的静态块。很可能您的类路径中缺少了一些资源

可能是权限错误?如果您喜欢
java-cp.“…”,会发生什么情况?
我想在这种情况下会有一个原因。所以,我认为这是另外一回事。我会检查。捆绑此应用时,构建工具已将依赖项提取到同一Jar文件中。但是,只添加了.class文件。资源文件夹为空,没有任何.properties文件。其中一个属性文件在Trace.javaJava中使用。令人惊讶的是,java没有给出“嵌套异常”/“由”引起的异常,而“嵌套异常”/“由”会非常有用。
./org/hsqldb/Trace.class
./org/hsqldb/util/Traceable.class
class Trace {

    static MyClass foo = MyClass.newInstance(); // If it fails while calling newInstance

    static {
        SomeClass.init(); // If it fails while calling SomeClass.init()
    }
    ...
}