首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java应用程序NoClassDefFoundError

Java应用程序NoClassDefFoundError
EN

Stack Overflow用户
提问于 2009-09-04 20:59:02
回答 2查看 1.3K关注 0票数 2

创建了一个Java应用程序,通过CIS (Content Integration Suite)将文档上载到存储应用程序。该应用程序在RAD中成功运行,但在unix环境中作为一个可执行的jar,获得一个NoClassDefFoundError。我在本地机器上找不到这个类,而且在互联网上也没有这个类的引用。

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

有人能帮上忙吗?

代码语言:javascript
复制
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

更新:我只有一个jar文件处理CIS。我看过这个罐子,里面没有类。我不熟悉其他有CIS类的RAD默认类。这不仅发生在这个类上,也发生在包含在webservices.jar中的一个类上。我可以看到这个类,它是我的类路径的一部分,因为当我从路径中删除Jar时,它会报告另一个缺少的类。当我把它放回我的路径中时,它在程序中变得更深了,并给出了同样的错误。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-21 13:39:02

该问题是由UNIX中tmp目录的权限引起的。CIS API使用tmp目录来创建和存储执行所需的文件/类。因为我使用自己的ID运行该进程,所以它无法访问wsadmin创建的tmp文件。要解决此问题,必须以wsadmin身份运行该进程。

票数 0
EN

Stack Overflow用户

发布于 2009-09-04 22:52:49

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1381519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档