虽然我以前的工作问题,Java静态VS常规对象
Java Jar Class Not Found Exception
我发现了一些奇怪的。无法找到的类是从main引用的。现在,如果我尝试像
系统托盘托盘=新的系统托盘创建类的实例();
我得到一个类未发现异常,当我尝试运行应用程序,但如果我创建它像
静态系统托盘托盘=新的系统托盘();
它被加载没有问题报告。
我想知道是否有人知道这是为什么?
这应该没有关系的类路径,因为没有外部depencies和应用程序包含在一个罐子里。
虽然我以前的工作问题,Java静态VS常规对象
Java Jar Class Not Found Exception
我发现了一些奇怪的。无法找到的类是从main引用的。现在,如果我尝试像
系统托盘托盘=新的系统托盘创建类的实例();
我得到一个类未发现异常,当我尝试运行应用程序,但如果我创建它像
静态系统托盘托盘=新的系统托盘();
它被加载没有问题报告。
我想知道是否有人知道这是为什么?
这应该没有关系的类路径,因为没有外部depencies和应用程序包含在一个罐子里。
,你能否告诉我们实际的代码,或者,如果它太大尝试重现错误在一个较小的例子吗?
可以解释这样做的唯一的事情是静态参考是主要的类之外,因此不实际加载,直到它在首次访问定义的类。
你真的访问静态字段吗?我不记得了,但我认为JVM是自由地运行静态初始化懒(头等舱引用或东西。
静态和第一种方法之间的唯一区别是它们存储在调用类的方式,当正如Michael Borgwardt所说,SysTray的构造函数被调用。 – Javache 2009-06-07 09:12:48