我在启动时在Java Web Start应用程序中遇到了一些NoSuchMethodErrors。这会导致致命的崩溃并强制app(和Java控制台)退出。 在编译时没有错误,但是当我在Tomcat服务器中运行应用程序时,它有时会崩溃。
应用程序不会在任何情况下崩溃,在某些PC客户端中我得到相同的错误,但应用程序仍然存在。
我使用JMC(Java Mission Control)发现了这些错误,但我找不到解决此问题的方法。什么可能导致这些错误? 我读到jar \库问题可能是原因(类加载问题)。
这些是我放在.jnlp中的罐子:
<jar href="jhome.jar" main="true" />
<jar href="jasperreports-5.1.0.jar" download="eager" />
<jar href="commons-logging-1.1.1.jar" download="eager" />
<jar href="commons-collections-2.1.1.jar" download="eager" />
<jar href="commons-digester-2.1.jar" download="eager" />
<jar href="commons-beanutils-1.8.0.jar" download="eager" />
<jar href="commons-vfs2-2.0.jar" download="eager" />
<jar href="jsch-0.1.51.jar" download="eager" />
<jar href="poi-3.7-20101029.jar" download="eager" />
<jar href="commons-beanutils-1.8.0.jar" download="eager" />
<jar href="commons-collections-3.2.1.jar" download="eager" />
<jar href="commons-lang-2.5.jar" download="eager" />
<jar href="ezmorph-1.0.6.jar" download="eager" />
<jar href="json-lib-2.4-jdk15.jar" download="eager" />
<jar href="json-simple-1.1.1.jar" download="eager" />
你能帮助我吗?
在每个NoSuchMethodError中,日志显示LinkageError - &gt; IncompatibleClassChangeError(它更具体吗?)
这是一个日志。我发现的每个NoSuchMethodError都有此日志事件
Error.<init>(String)
LinkageError.<init>(String)
IncompatibleClassChangeError.<init>(String)
NoSuchMethodError.<init>(String)
ObjectStreamClass.hasStaticInitializer(Class)
ObjectStreamClass.computeDefaultSUID(Class)
ObjectStreamClass.access$100(Class)
ObjectStreamClass$1.run()
ObjectStreamClass$1.run()
AccessController.doPrivileged(PrivilegedAction)
ObjectStreamClass.getSerialVersionUID()
ObjectStreamClass.initNonProxy(ObjectStreamClass, Class, ClassNotFoundException, ObjectStreamClass)
ObjectInputStream.readNonProxyDesc(boolean)
ObjectInputStream.readClassDesc(boolean)
ObjectInputStream.readOrdinaryObject(boolean)
ObjectInputStream.readObject0(boolean)
ObjectInputStream.readObject()
ArrayList.readObject(ObjectInputStream)
NativeMethodAccessorImpl.invoke0(Method, Object, Object[])
NativeMethodAccessorImpl.invoke(Object, Object[])
DelegatingMethodAccessorImpl.invoke(Object, Object[])
Method.invoke(Object, Object[])
ObjectStreamClass.invokeReadObject(Object, ObjectInputStream)
ObjectInputStream.readSerialData(Object, ObjectStreamClass)
ObjectInputStream.readOrdinaryObject(boolean)
ObjectInputStream.readObject0(boolean)
ObjectInputStream.readObject()
ObjectStreamingManager.unzip(InputStream)
... (after ... there are some lines of methods written by me in the Project)