Java 应用程序 NoClassDefFoundError

标签 java unix jar executable-jar noclassdeffounderror

创建了一个 Java 应用程序,用于通过 CIS(内容集成套件)将文档上传到存储应用程序。该应用程序在 RAD 中成功运行,但作为 unix 环境中的可执行 jar,出现 NoClassDefFoundError。我无法在我的本地计算机上找到该类(class),并且在 Internet 上也没有对该类(class)的引用。

list 包含所需 jar 文件和主类的类路径。

有人能帮忙吗?

Fri Sep 04 16:47:25 EDT 2009 : StandardBatchApplication startup() completed.
java.lang.NoClassDefFoundError: com.stellent.cis.support.spring.ResourceHelper
        at com.stellent.cis.common.classloader.IsolatedJarClassLoader$TemporaryF
        at com.stellent.cis.common.classloader.IsolatedJarClassLoader$TemporaryF
        at com.stellent.cis.common.classloader.IsolatedJarClassLoader$TemporaryF
        at com.stellent.cis.common.classloader.IsolatedJarClassLoader.<clinit>(I
        at java.lang.J9VMInternals.initializeImpl(Native Method)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:196)
        at com.stellent.cis.impl.CISApplicationFactory.getCisClassloader(CISAppl
        at com.stellent.cis.impl.CISApplicationFactory.getCisApplication(CISAppl
        at com.stellent.cis.impl.CISApplicationFactory.initialize(CISApplication
        at com.lowes.ipt.edi.processor.CISApp.initialize(CISApp.java:48)
        at com.lowes.ipt.edi.processor.EDItoEDAMUploadProcessor.main(EDItoEDAMUp
Caused by: java.lang.ClassNotFoundException: com.stellent.cis.support.spring.Res
        at java.net.URLClassLoader.findClass(URLClassLoader.java:496)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:631)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:597)
        ... 11 more

更新:我只有一个处理 CIS 的 jar 文件。我查看了 jar ,里面没有类。我不熟悉任何其他具有 CIS 类的 RAD 默认类。这不仅发生在这个类上,也发生在 webservices.jar 中包含的一个类上。我可以看到这个类,它是我的类路径的一部分,因为当我从路径中删除 Jar 时,它会提示另一个丢失的类。当我将它放回我的路径时,它在程序中更进一步并给出相同的错误。

最佳答案

缺少的类可能在安装在本地机器上而不是远程机器上的某个 JAR 文件中。或者更有可能 - 它安装在与本地机器不同位置的移除机器中(如果远程机器是 Unix 机器而你的本地机器是 Windows 机器,这是预期的)。

在您构建的 JAR 的 MANIFEST.MF 文件中设置的类路径必须指定用于在远程计算机上查找所有相关 JAR 的类路径 - 您必须找到该 JAR 的安装位置,然后将该路径添加到 list 类路径. Unix 机器中的 JAR 通常安装在/usr/share/java 中,但我不能告诉你更多,因为我不熟悉 CIS 并且我不知道它通常分发什么 JAR 文件。

关于Java 应用程序 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1381519/

相关文章:

C Unix 程序不会从文件中读取

Java 主类在运行时重写属性文件

java - ColdFusion 和 Java(docx4j 库)

java - Heapify 给我的最小堆输出不正确

java - 为什么未设置 Autowiring setter 值?

java - 来自 JAR 的线程 "main"java.lang.NoClassDefFoundError 中出现异常

java - 如何在 monodroid 项目中使用 .jar?

java - 为什么我对 gwt 有依赖性?

java - 如何为所有测试初始化​​一次 Spring applicationContext

mongodb - 启动 mongod fork,ERROR : child process failed, exited with error number 1