当我的 JAR 位于类路径中时,为什么 Ant 会说“NoClassDefFound”?

2024-01-08

我正在使用 Java 1.6、Eclipse 和 Ant。

以下是我创建 jar 文件并运行它的目标:

    <!-- Settings -->
    <property file="build.properties" />
    <path id="classpath">
        <fileset dir="${lib.dir}" includes="**/*.jar" />
    </path>

    <!-- Compile -->
    <target name="compile">
        <mkdir dir="${classes.dir}" />
        <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="false">
            <classpath refid="classpath" />
        </javac>
    </target>

    <!-- Package .jar -->
    <target name="jar">
        <mkdir dir="${jar.dir}" />
        <jar destfile="${jar.dir}/App.jar" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="main.App" />
            </manifest>
        </jar>
    </target>

    <!-- Run .jar -->
    <target name="run">
        <java jar="${jar.dir}/App.jar" fork="true" />
    </target>

问题是,当我运行这个 jar (通过 Ant 或命令行)时,我收到错误:

Exception in thread "main" java.lang.NoClassDefFoundError: net/xeoh/plugins/base/impl/PluginManagerFactory
     [java]     at plugins.PluginLoader.<clinit>(Unknown Source)

了解一些可能有用的事情:

  • 当我打印我的类路径时,它显示所有必需的 JAR 都是 那里;它还显示 Eclipse 的 GUI 版本的类路径。

  • 我尝试清理项目(通过 Eclipse 和 Ant)但无济于事。

  • 似乎缺少的库 .jar 是not.jar 中的 .jar (这似乎是一个常见问题)。

  • 这是唯一的错误。其他班级似乎发现图书馆还不错......


您已设置编译类路径,但 App.jar 不包含您的库(仅包含您编译的类)或清单类路径。

您需要执行以下操作:

<target name="jar">
    <mkdir dir="${jar.dir}" />
    <manifestclasspath property="manifest.classpath"
                       jarfile="${jar.dir}/App.jar">
      <classpath refid="classpath" />
    </manifestclasspath>
    <jar destfile="${jar.dir}/App.jar" basedir="${classes.dir}">
        <manifest>
            <attribute name="Main-Class" value="main.App" />
            <attribute name="Class-Path" value="${manifest.classpath}" />.
        </manifest>
    </jar>
</target>

也可以看看ant 清单类路径任务 http://ant.apache.org/manual/Tasks/manifestclasspath.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我的 JAR 位于类路径中时,为什么 Ant 会说“NoClassDefFound”? 的相关文章

  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • 动态选择端口号?

    在 Java 中 我需要获取端口号以在同一程序的多个实例之间进行通信 现在 我可以简单地选择一些固定的数字并使用它 但我想知道是否有一种方法可以动态选择端口号 这样我就不必打扰我的用户设置端口号 这是我的一个想法 其工作原理如下 有一个固定
  • Pig Udf 显示结果

    我是 Pig 的新手 我用 Java 编写了一个 udf 并且包含了一个 System out println 其中的声明 我必须知道在 Pig 中运行时该语句在哪里打印 假设你的UDF 扩展了 EvalFunc 您可以使用从返回的 Log
  • 在接口中使用默认方法是否违反接口隔离原则?

    我正在学习 SOLID 原则 ISP 指出 客户端不应被迫依赖于他们所使用的接口 不使用 在接口中使用默认方法是否违反了这个原则 我见过类似的问题 但我在这里发布了一个示例 以便更清楚地了解我的示例是否违反了 ISP 假设我有这个例子 pu
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • Hibernate 的 PersistentSet 不使用 hashCode/equals 的自定义实现

    所以我有一本实体书 public class Book private String id private String name private String description private Image coverImage pr
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • 尝试将 Web 服务部署到 TomEE 时出现“找不到...的 appInfo”

    我有一个非常简单的项目 用于培训目的 它是一个 RESTful Web 服务 我使用 js css 和 html 创建了一个客户端 我正在尝试将该服务部署到 TomEE 这是我尝试部署时遇到的错误 我在这里做错了什么 刚刚遇到这个问题 我曾
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 我如何在java中读取二进制数据文件

    因此 我正在为学校做一个项目 我需要读取二进制数据文件并使用它来生成角色的统计数据 例如力量和智慧 它的设置是让前 8 位组成一个统计数据 我想知道执行此操作的实际语法是什么 是不是就像读文本文件一样 这样 File file new Fi
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 使用 svn 1.8.x、subclise 1.10 的 m2e-subclipse 连接器在哪里?

    我读到 m2e 的生产商已经停止生产 svn 1 7 以外的任何版本的 m2e 连接器 Tigris 显然已经填补了维护 m2e subclipse 连接器的空缺 Q1 我的问题是 使用 svn 1 8 x 的 eclipse 更新 url
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 如何防止在Spring Boot单元测试中执行import.sql

    我的类路径中有一个 import sql 文件 其中包含一些 INSERT 语句 当使用 profile devel 运行我的应用程序时 它的数据被加载到 postgres 数据库中 到目前为止一切正常 当使用测试配置文件执行测试时 imp
  • java.lang.OutOfMemoryError:Scala 上超出了 GC 开销限制

    我是 Scala 开发人员 我在Routes它包含的文件1008行如果我添加另一行 则会抛出下面的错误 Uncaught error from thread sbt web scheduler 1 shutting down JVM sin
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • Android 4.0 模拟器无法启动

    当尝试创建并启动 Android 4 0 模拟器时 我获得了 Android 模拟器皮肤 但操作系统似乎无法启动 我已从 Android SDK 管理器安装了 ARM EABI v7 软件包 尝试创建模拟器 但收到有关缺少 userdata
  • 正则表达式匹配不相等或不反转的数字组

    我在这里指的是这个问题的后续 正则表达式匹配两个不相等的数字 https stackoverflow com questions 5257685 regular expression to match two numbers that ar
  • Swift 3 / iOS 10 / TodayExtension - UserDefaults 始终返回 nil

    这是我在这个网站上的第一个问题 我有一个无法解决的问题 我正在开发一个带有 Today 扩展的简单笔记应用程序 我在 Swift 2 2 和 iOS 9 中没有遇到任何问题 问题只出现在 iOS 10 上的 Swift 2 3 和 Swif
  • 从 Python 访问 COM 方法

    我有一个旧的 Windows DLL 没有源代码 它实现了实用函数表 几年前 计划将其转换为 COM 对象 以便实现 IUnknown 接口 为了使用这个 DLL 有一个头文件 简化的 interface IFunctions public
  • 在编写 C 代码时如何优雅地利用 REV 和 RBIT 等 ARM 指令?

    我正在编写可以为 Arm Cortex M3 微控制器编译的 C 代码 该微控制器支持多种有用的指令 可有效操作寄存器中的位 包括 REV RBIT SXT 在编写C代码时 如果我需要那些特定的功能 如何利用这些指令 例如 我怎样才能完成这
  • Django:标记为已读“通知”

    我正在做一个学校项目 现在任何用户都可以提出问题 为了在任何用户提出问题时通知所有用户 我创建了一个新应用程序 并在提出问题时通过简单的 视图 通知他们 但这还只是普通的通知 用户打开 通知 选项卡后 如何将它们标记为已读 就像在社交网络上
  • 如何从浏览器读取客户端的机器/计算机名称?

    如何从浏览器读取客户端的机器 计算机名称 是否可以使用 JavaScript 和 或 ASP NET 您 有时 可以使用 IE 来完成此操作 因为我已经在只有 IE 的 Intranet 上的内部应用程序中完成了此操作 请尝试以下操作 fu
  • 按字符串选择列时,Dplyr 的 tbl_df 会出现意外行为

    通常 当以编程方式使用 dplyr 时 我希望通过名称选择列 其中列名称作为字符串存储在某个变量中 我注意到尝试使用 dplyr 执行此操作通常会导致意外结果 这似乎是由于 tbl df 的处理方式造成的 以下是一些示例 regular d
  • 如何将一个函数作为参数传递给另一个函数

    我想将一个函数作为参数传递给另一个函数 例如 void myFunction boolean coondition void function if condition function 在 Java 8 中这可能吗 不 你不能传递方法 但
  • 从c# 连接到oracle

    我正在尝试从 C 连接 Oracle 11g 我已关注 此链接 定义了连接别名 如下所示 moviess DESCRIPTION ADDRESS PROTOCOL TCP HOST localhost PORT 1521 CONNECT D
  • Entity Framework 4.1 Fluent API 中具有联接表和可选关系的一对多

    再次使用无法更改的旧数据库 并使用 Entity Framework 4 1 和 Fluent API 仅读取数据 public class Client Key public int ClientID get set public str
  • 如何 Dockerize Windows 应用程序

    我有一个 Windows 应用程序 我想将其容器化 它是一个 Windows 桌面应用程序 不是 Web 应用程序 我做了一些搜索 发现关于容器化桌面应用程序的信息很少 我想要容器化的应用程序在 WindowsServerCore 上运行良
  • Angular4 更改 md 按钮的波纹颜色

    我使用 Material for Angular4 在网页中创建了一个 md 按钮 有没有办法改变波纹效果的颜色并使其变为白色 我还可以更改其他波纹属性 例如波纹效果的持续时间吗 事实证明 为了更改波纹属性 应该在 mat ripple t
  • BehaviourSubject 初始值不适用于 share()

    share 运算符应用于BehaviorSubject BehaviourSubject 有初始值 目标是创建单个共享订阅 但是当BehaviorSubject有初始值时 这种共享订阅似乎不起作用 得到意想不到的结果 代码如下所示 let
  • 使用我自己的实体而不是 POCO 实体

    我正在使用实体框架 我可以使用自己的实体来代替 POCO 实体吗 我可以使用任何实体 或者实体名称和成员有任何限制吗 如果实体的成员与字段的名称不同 如何在 db 字段与实体的成员本身之间映射 UPDATE我已经拥有数据库广告一个大型项目
  • 将函数放入对象中与对其进行原型设计之间有什么区别?

    向对象添加函数和将函数原型化到对象上有什么区别 原型设计允许对象 模型调用自身吗 函数对象 通常用于对一组函数进行 命名空间 以便一个容器对象具有许多方法而不是许多全局函数 这样做的好处是保持代码组件按对象 可能还有对象层次结构 进行分类或
  • 三个值的中值

    我正在尝试编写一个 C 程序 它接受 3 个值作为函数参数并返回中位数 该程序运行得很好 直到我意识到它不能使用相同的值两次或更多次 例如 如果输入是 1 2 3 我得到 2 正确的中位数 但如果输入是 1 2 1 或 1 1 1 循环从头
  • 如何将列表转换为以索引作为值的字典?

    我正在尝试转换以下列表 l A B C 对于像这样的字典 d A 0 B 1 C 2 我尝试过其他帖子的答案 但没有一个对我有用 我现在有以下代码 d l i i for i in range len l 这给了我这个错误 unhashab
  • 检查类型是否可为 Null 的正确方法[重复]

    这个问题在这里已经有答案了 为了检查是否Type propertyType 可以为空 我正在使用 bool isNullable Nullable 1 Equals propertyType Name 有什么方法可以避免使用魔术字符串吗 绝
  • 当我的 JAR 位于类路径中时,为什么 Ant 会说“NoClassDefFound”?

    我正在使用 Java 1 6 Eclipse 和 Ant 以下是我创建 jar 文件并运行它的目标