0

在处理我之前的问题时,

Java Jar 类未找到异常

我注意到了一些奇怪的事情。找不到的类是从main中引用的。现在,如果我尝试创建类的实例,例如

SysTray 托盘 = 新的 SysTray();

当我尝试运行应用程序时,我得到一个类未找到异常,但如果我像这样创建它

静态 SysTray 托盘 = new SysTray();

它被加载没有报告任何问题。

我想知道是否有人知道这是为什么?

这应该与类路径无关,因为没有外部依赖项并且应用程序包含在 jar 中。

4

2 回答 2

3

您能否向我们展示实际代码,或者如果它太大,请尝试在较小的示例中重现错误?

唯一可以解释这一点的是静态引用在主类之外,因此在第一次访问它定义的类之前不会实际加载。

于 2009-06-07T06:57:56.540 回答
0

你真的访问静态字段吗?我不记得了,但我认为 jvm 可以自由地运行静态初始化惰性(在第一类引用或其他东西上。

于 2009-06-07T11:25:44.253 回答