ant中设置类路径的问题

2024-02-14

我在运行 Java 程序时遇到问题(它使用一些第三方 JAR)。我可以很好地编译它,但是当我在 ant 中调用我的运行目标时,它说它找不到我告诉它在类路径中运行的类。我的 build.xml 如下所示:

<project basedir="." default="build">
<property name="build" value="build" />
<property name="src" value="." />
<property name="lib" value="lib" />

<path id="classpath">
    <fileset dir="${lib}">
        <include name="**/*.jar" />
    </fileset>
    <fileset dir="${build}">
        <include name="*.class" />
    </fileset>
</path>

<target name="build">
    <javac srcdir="${src}" destdir="${build}">
        <classpath refid="classpath" />
    </javac>
</target>

<target name="run">
    <java classname="FirstClass">
        <classpath refid="classpath" />
    </java>
</target>

有谁知道我可能做错了什么?


这是我的 ant 堆栈跟踪:

ant run Buildfile: build.xml

run:
[java] Could not find GuiStarter. Make sure you have it in your classpath
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:138)
[java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:764)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:218)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:132)
[java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:105)
[java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[java] at java.lang.reflect.Method.invoke(Method.java:616)
[java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[java] at org.apache.tools.ant.Task.perform(Task.java:348)
[java] at org.apache.tools.ant.Target.execute(Target.java:357)
[java] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[java] at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[java] at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[java] at org.apache.tools.ant.Main.runBuild(Main.java:758)
[java] at org.apache.tools.ant.Main.startAnt(Main.java:217)
[java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
[java] Java Result: -1

BUILD SUCCESSFUL Total time: 1 second

我认为问题出在你的身上classpath路径声明。这build目录应该是<pathelement>

<path id="classpath">
    <fileset dir="${lib}">
        <include name="**/*.jar" />
    </fileset>
    <pathelement location="${build}" />
</path>

另外,我只会在你的中包含第三方罐子classpath重新灌装。所以整个街区看起来像。

<path id="3rd-party-classpath">
    <fileset dir="${lib}">
        <include name="**/*.jar" />
    </fileset>
</path>

<target name="build">
    <javac srcdir="${src}" destdir="${build}">
        <classpath refid="3rd-party-classpath" />
    </javac>
</target>

<target name="run">
    <java classname="FirstClass">
      <classpath>
        <pathelement location="${build}" />
        <path refid="3rd-party-classpath" />
      </classpath>
    </java>
</target>

另外,正如 DroidIn.net 所指出的,您应该为您的程序创建一个包。

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

ant中设置类路径的问题 的相关文章

  • Java 字符串哈希码缓存

    字符串不变性的优点之一是哈希码缓存以实现更快的访问 在这种情况下 如何处理具有相同哈希码的字符串的缓存 在这种情况下它真的能提高性能吗 在这种情况下 如何处理具有相同哈希码的字符串的缓存 被缓存的是字符串的哈希码 它被缓存在私有的int字符
  • jvm中本机代码如何转换为机器代码[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我读过一些文章说 jvm将字节码转换为机器码 jvm将字节码转换为本机代码 jvm 将字节码转换为系统调用 系统调用又由操作系统与硬件
  • 使用正则表达式验证输入字符串是否为 0-255 之间的数字

    我在将输入字符串与正则表达式匹配时遇到问题 我想验证输入数字在 0 255 之间并且长度最多应为 3 个字符 代码工作正常 但当我输入 000000 至任意长度时 显示 true 而不是 false 这是我的代码 String IP 000
  • ResultSet:通过索引检索列值与通过标签检索

    使用 JDBC 时 我经常遇到这样的结构 ResultSet rs ps executeQuery while rs next int id rs getInt 1 Some other actions 我问自己 以及代码作者 为什么不使用
  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 如何在 Java 中使用 StringUtils?

    我是 Java 初学者 我想用StringUtils replace但 Eclipse 输出 StringUtils cannot be resolved I tried import java lang 但它不起作用 java lang不
  • 我需要一个字数统计程序[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要弄清
  • spring mvc 跟踪引用页面

    在基于注释的弹簧控制器中 如果用户正在url com first page并点击一个链接或提交一份表格指出url com second page 如何制作second page知道url of first page所以这样second pa
  • SwingWorker 在另一个 SwingWorker 的 did 方法中

    首先 我需要通知您 我正在尽最大努力学习如何用 Java 编写代码 虽然有点困难 但我相信我能做到 我过去提交了几个有关 SwingWorkers 等的问题 每一个我都以为我已经做到了 但后来发现我仍然需要学习 希望这一次不是那样的一次 话
  • 如何使用 Selenium 中的索引切换到窗口

    由于selenium不提供切换到窗口 多个窗口 的方法 但我想使用index html自定义方法来切换到不同的窗口 但下面的代码没有按预期工作 请建议以下方法的最佳实施 public void switchToWindowIndex int
  • vm 参数中的 -D 是什么,它表示为什么我们必须在 vm 参数中始终指定 -D

    vm 参数中的 D 是什么 它表示为什么我们必须在 vm 参数中始终指定 D 有什么标准吗 如果是 那是什么以及指定的位置 D 设置当前运行的 java 程序可以访问的属性值 它允许程序员设置程序运行所需的值 但程序不知道这些值是什么 因此
  • 反应式 Spring Webflux REST 控制器内部重定向

    我正在为 spring 反应项目创建简单的控制器服务器 在设置重定向到另一个位置时 我在调用时发现错误http localhost 8080 There was an unexpected error type Internal Serve
  • 无法自动装配 org.springframework.mail.javamail.JavaMailSender

    尝试运行我的应用程序时遇到以下问题 所有的东西都调试过了 还是一无所获 IDE 毫无问题地找到了 bean 所以我对这里发生的情况感到非常困惑 SEVERE Exception sending context initialized eve
  • 使用 Box2d(适用于 Android)进行碰撞检测?

    有人可以解释一下使用 box2d for android 进行碰撞检测的工作原理吗 我无法理解 BBContactListener 以什么方式工作 BBContactListener listener new BBContactListen
  • bufferedinputstream 中标记读取限制有什么用

    我是Java流的新手 我想读取特定的文件内容 然后需要从头开始读取 我创建了一个 BufferedInputStream 但我对 BufferedInputStream mark int markLimit 的文档感到困惑 文档说 publ
  • “___ 中的方法 ___() 是在无法访问的类或接口中定义的”编译错误

    我发现了一个奇怪的编译限制 我无法解释 并且我不明白这个限制的原因 示例1 考虑这些类 In package e1 public class C1 enum E1 A B C public E1 x In package e2 import
  • 在 REST Web 服务中接受逗号分隔值

    我正在尝试接收 REST URI 中以逗号分隔值形式的字符串列表 示例 http localhost 8080 com vogella jersey first rest todo test 1 abc test 其中 abc 和 test
  • 构造函数参数和属性一起出现在 bean 定义中

  • AndroidAnnotations 和 Dagger

    我正在尝试使用 Dagger 注入 Android 带注释的 Activity java lang IllegalArgumentException No inject registered for members com app serv
  • 如何创建具有同等时间元素的 JavaFX 转换?

    我正在尝试 JavaFX 和动画 尤其是PathTransition 我正在创建一个简单的程序 使球 弹跳 而不使用QuadCurveTo班级 到目前为止 这是我的代码 Ellipse ball new Ellipse 375 250 10

随机推荐

  • 变得严重:获取 sessionfactory 时无法在 JNDI 中找到 SessionFactory

    我使用 hibernate 作为持久层来与数据库通信 我使用maven插件hbm2java来生成dao java hbm xml和hibernate cfg xml 到那时插件就可以正常工作了 但是当我尝试与数据库通信时 它给出了以下异常
  • MongoError:聚合期间 PlanExecutor 错误

    我在 mongodb 中有树记录 但可能还有更多 我通过来自前端的 ID 获取商店 我需要获取 20 条记录 并按 itemId 和 colorId 对它们进行分组 并获取每个商店的计数 商店数量可以是 1 2 3 10 等 这是我需要的输
  • 直接访问gitlab数据库

    我正在从 gitlab 运行 AWS AMI 我正在尝试使用 psql 直接访问 postgres 数据库 我想我可以只使用database yml中的凭据 因为rails应用程序工作正常 opt gitlab embedded bin p
  • dotnet System.Web.Caching.Cache 与 System.Runtime.Caching.MemoryCache

    我有一个类需要将数据存储在缓存中 最初我在 asp net 应用程序中使用它 所以我使用 System Web Caching Cache 现在我需要在 Windows 服务中使用它 现在 据我了解 我不应该在非 asp net 应用程序中
  • 在 Postgresql 中索引外键

    像许多 Postgres 一样n00bs我们有很多带有外键约束但未建立索引的表 在某些情况下 这不会对性能造成很大影响 但这需要进一步分析 我读过以下文章 https www cybertec postgresql com en index
  • Databricks 连接失败,方案没有文件系统:abfss

    我已经设置了数据块连接 https docs databricks com dev tools databricks connect html这样我就可以在本地进行开发并获得 Intellij 的好处 同时利用 Azure Databric
  • python 3:类“模板”(返回参数化类的函数)

    我正在尝试创建一个传递参数的函数x并返回一个新类C C应该是固定基类的子类A 仅添加一项 添加某个类属性并将其设置为 equalx 换句话说 class C A C p x x is the parameter passed to the
  • 如何从 AlarmManager 取消警报

    我遇到过同样的问题 使用 cancel 从 AlarmManager 删除警报 Android https stackoverflow com questions 14485368 delete alarm from alarmmanage
  • 大型 WCF 服务的最佳实践?

    编写包含大量操作契约和数据契约的相当大的 wcf 服务的最佳实践是什么 我如何将功能区域分成多个合同 最好为每个功能区域创建一个端点吗 有没有什么方法可以将不同部分的源分开 但仍然只对所有部分使用一项服务 我从哪里可以获得有关如何规划合同
  • 哪种 MySQL JOIN 查询效率更高?

    给定以下表结构 CREATE TABLE user uid INT 11 auto increment name VARCHAR 200 PRIMARY KEY uid CREATE TABLE user profile uid INT 1
  • 数组下标的无效类型“double [100][double]”

    define MAX 100 double velocity MAX for itr 0 itr lt velocity 0 itr itr 1 velocity itr velocity 0 1 itr distance itr rk4
  • 如何使用 StructureMap 配置文件设置命名实例?

    我在这里进行了大量的谷歌搜索和搜索 但找不到类似的问题或答案 在典型的 SM 配置中 您可以为单个 PluginType 添加多个命名实例 ForRequestedType
  • 事务管理器已禁用对远程/网络事务的支持

    我正在使用 SQL Server 和 ASP NET 我有以下功能 Using js daoFactory CreateJoinScope Using tran New Transactions TransactionScope tran
  • Spring Session Data Redis - 从 Redis 存储中获取有效会话、当前用户

    我的问题是 在分布式 Web 应用程序中 是否可以使用 Redis Store 获取有效会话RedisOperationSessionRepository 我的意思是我不想编写显式代码将其放入 Redis 存储然后稍后阅读它 我想了解框架或
  • 如何在Java中使用输出参数? [复制]

    这个问题在这里已经有答案了 有人可以给我一些在函数中使用输出参数的示例代码吗 我尝试用谷歌搜索它 但只是在函数中找到了它 我想在另一个函数中使用这个输出值 我正在开发的代码旨在在 Android 中运行 Java 按值传递 没有out类似于
  • 如何在一段时间后取消 RXJS 订阅

    如果用户的网速很慢并且订阅时间太长 超过30秒 我想取消它 const k this firebase user subscribe data gt some instructions error gt alert error gt con
  • Windbg 设置取决于调用堆栈的条件断点

    问题 我需要制作一个脚本或表达式 如果调用堆栈上的某处是具有特定名称的函数 则该脚本或表达式不会中断 具体问题 如何将调用堆栈上的函数获取到字符串列表 Example Module MyFunctionWithConditionalBrea
  • Leaflet.js:是否可以按属性过滤geoJSON特征?

    我环顾四周 看到很多有关如何显示 隐藏图层的信息 这很酷 但由于我可以向 GeoJSON 功能添加任意属性 所以我希望能够相应地过滤它们 例如 如果我的特征 1 2 和 3 具有以下属性 小 红色 甜的 大 绿色 酸的 小 红色 热的 我如
  • docker compose up 工作正常,但浏览器显示无法访问站点

    docker compose up显示这个 Recreating tutorial product service 1 Recreating tutorial product service 1 done Attaching to tuto
  • ant中设置类路径的问题

    我在运行 Java 程序时遇到问题 它使用一些第三方 JAR 我可以很好地编译它 但是当我在 ant 中调用我的运行目标时 它说它找不到我告诉它在类路径中运行的类 我的 build xml 如下所示