在处理我之前的问题时,
Java Jar Class Not Found Exception
我注意到一些奇怪的事情。从main引用了无法找到的类。现在,如果我尝试创建类的实例,如
SysTray tray = new SysTray();
当我尝试运行应用程序但是如果我像
那样创建它时,我得到了一个未找到类的异常static SysTray tray = new SysTray();
它被加载没有报告任何问题。
我想知道是否有人知道这是为什么?
这应该与类路径无关,因为没有外部依赖项,并且应用程序包含在jar中。
答案 0 :(得分:3)
你能告诉我们实际的代码,或者如果它太大,试着在一个较小的例子中重现错误吗?
唯一可以解释这一点的是静态引用在主类之外,因此在第一次访问它定义的类之前不会实际加载。
答案 1 :(得分:0)
您实际访问静态字段吗?我不记得了,但我认为jvm可以自由运行静态初始化懒惰(在第一类引用或其他东西。