当前位置: 首页 > 知识库问答 >
问题:

IVY/JAR错误-java。lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Row

乔望
2023-03-14

嗨,我知道这个问题已经被问了很多次了,但是我已经尝试了所有建议的问题!

我的代码在Eclipse中运行得非常好,但是我想在Unix中构建jar并通过命令行运行。

在我的依赖ivy.xml我列出了我的依赖:

    <dependencies>
              <dependency org="org.apache.xmlbeans" name="xmlbeans" rev="2.6.0"/>
              <dependency org="org.apache.poi" name="poi" rev="3.11" conf="default" /> 
              <dependency org="org.apache.poi" name="poi-ooxml" rev="3.11" conf="default" />
              <dependency org="org.apache.poi" name="poi-ooxml-schemas" rev="3.11" conf="default" />
    </dependencies>

但是当我执行我的jar时,我得到了以下错误:

线程“main”java中出现异常。lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Row

我知道您需要为ss提供poi ooxml,但是,我在我的ivy依赖项中引用了它。

为什么我仍然会犯这个错误?

任何帮助都将不胜感激。

共有1个答案

颛孙凯定
2023-03-14

我猜您的jar在其清单中缺少一个类路径。请尝试以下操作:

<target name="build" depends="test" description="Create executable jar archive">
    <ivy:retrieve pattern="${dist.dir}/lib/[artifact]-[revision](-[classifier]).[ext]"/>

    <manifestclasspath property="jar.classpath" jarfile="${jar.file}">
        <classpath>
            <fileset dir="${dist.dir}/lib" includes="*.jar"/>
        </classpath>
    </manifestclasspath>

    <jar destfile="${jar.file}" basedir="${build.dir}/classes">
        <manifest>
            <attribute name="Main-Class" value="${jar.main.class}" />
            <attribute name="Class-Path" value="${jar.classpath}" />
        </manifest>
    </jar>
</target>

笔记

  • ivy检索任务用于将依赖项放置到正在构建的jar旁边的分发目录中
  • 在为可能很长的依赖关系列表创建正确的相对路径时,清单类路径任务是一个有用的技巧
 类似资料:
  • 问题内容: 我制作了一个小型应用程序,可以从excel(xls文件)中读取内容并将其内容显示到JTable中。在eclipse中一切正常,但是当我创建jar文件并尝试运行它时,出现以下问题: 我发现奇怪的是,问题出在行上,当在行之前调用Workbook和Sheet时,它没有任何麻烦(至少从我的观察中可以看出)。 我已经研究了很多,主要似乎是jar文件不在Class-Path中,但是打开jar和清单

  • 我正在使用ApachePOI读取一些Excel文件。我创建了一个控制台应用程序来完成这项工作,之后我尝试将代码集成到SpringMVCwebapp中(我知道没什么特别的)。我已将相同的Jar文件包含到我的类路径中,但每当我尝试运行代码时,都会出现以下错误: 我相信类Font是在编译时找到的,但不是在运行时。我很确定问题不在于ClassPath,但是我不知道如何解决这个问题。 编辑:当我用main方

  • 我制作了一个小应用程序,它从excel(xls文件)读取内容并将内容显示到JTable。eclipse中的一切都很好,但是当我创建jar文件并尝试运行它时,我遇到了以下问题: 我发现的奇怪的事情是,问题是行,当工作簿和工作表被称为行之前,并没有给任何麻烦(至少从我可以看到)。 我已经研究了很多,主要似乎是jar文件不在类路径中,但是打开jar和清单文件,我可以看到所有的jar都存在。 这就是我的p

  • 我使用maven来管理我的web项目依赖关系。我添加apache poi依赖到我的pom文件.它不显示错误时,符合.但当它运行,它将抛出运行时间异常在我的Main Application()类.而它给java.lang.NoClassDefFoundError: org/apache/poi/ss/userModel/Workbook 我有一门主要的应用课程。 } 下面是我的补充

  • 我正在运行一个shell脚本,它调用一个java类从数据库中获取一些数据,并用这些数据创建一个excel报表。当代码在我的java类中遇到下面一行时,我在线程“main”Java . lang . noclassdeffounderror:org/Apache/poi/ss/user model/Workbook中得到错误异常: 以下是我定义类路径的方式: 我验证了jar已经被下载(通过gradl