gpt4 book ai didi

java - 如何使用 ant 在类路径中包含多个 jar?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:53 25 4
gpt4 key购买 nike

我在“src”文件夹中有一堆 .java 文件,它们依赖于“lib”文件夹中的三个 jar。我有以下 build.xml 文件:

<?xml version="1.0"?>
<project name="MyProj" basedir=".">
<property name="src" value="src"/>
<property name="build" value="build"/>
<property name="lib" value="lib"/>


<path id="master-classpath">
<fileset dir="${lib}">
<include name="activemq-all-5.1-SNAPSHOT.jar"/>
<include name="geronimo-jms_1.1_spec-1.1.1.jar"/>
<include name="activemq-core-5.3.0.jar"/>
</fileset>
</path>

<javac destdir="${build}">
<src path="${src}"/>
<classpath refid="master-classpath"/>
</javac>

</project>

这编译得很好,但是当我尝试运行时我得到了

"java.lang.NoClassDefFoundError: javax/jms/Destination"

不过,当我使用 Eclipse 将 jar 包含在构建路径中时,该程序运行和编译良好。

编辑:所以我将 jars 复制到包含已编译类的文件夹中。具有 main 方法的类是 NDriver.class。当我尝试时:

java -classpath ./geronimo-jms_1.1_spec-1.1.1.jar:./activemq-core-5.3.0.jar:./activemq-all-5.1-SNAPSHOT.jar NDriver

这给出:

Exception in thread "main" java.lang.NoClassDefFoundError: NDriver

如果有任何帮助,我将不胜感激。

最佳答案

运行应用程序时,您需要将编译时使用的 jar 放在类路径中。可悲的是,您没有提供有关实际运行方式的任何详细信息,因此很难提供更多指导。

更新:包含已编译类的目录也需要添加到类路径中。如果从包含已编译类的目录启动 java,则可以使用 . 指定当前目录。如下所示将它添加到类路径中,以告诉 java 也在那里查找类(我在 activemq-all-5.1-SNAPSHOT 之后添加了 .。 jar ):

java -classpath ./geronimo-jms_1.1_spec-1.1.1.jar:./activemq-core-5.3.0.jar:./activemq-all-5.1-SNAPSHOT.jar:. NDriver

关于java - 如何使用 ant 在类路径中包含多个 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1949738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com