gpt4 book ai didi

java - 从 Ant 构建文件运行 Java 程序

转载 作者:行者123 更新时间:2023-11-30 04:43:58 25 4
gpt4 key购买 nike

因此,我编写了一个 ant build.xml 文件,其中从两个 Java 程序(一个扩展另一个程序)获取类文件,将它们打包到两个单独的 jar 文件中,然后启动它们。

<java classname="Main">
<classpath>
<pathelement location="${mainDir}"/>
<pathelement path="${Main-Class}"/>
</classpath>
</java>

每当我调用 ant 时,它都会说找不到“Main”。如果需要,我可以发布 build.xml 文件的其余部分,但这实际上只是我感到困惑的部分。我很确定我的类名是正确的,但我最大的问题是弄清楚位置和路径的内容。现在我只有虚拟变量。

编辑:这是整个文件。

<?xml version="1.0"?>
<project default="dist" name="webscarab">
<description>Class</description>
<property name="ClassFiles" location="..\Simple\trunk\dev\Class\bin\" />
<property name="mainClassFiles" location="..\Simple\trunk\dev\main\build\" />
<property name="buildDir" location=".\build" />
<property name="distDir" location=".\dist" />
<property name="mainDir" location="..\Simple\trunk\dev\webscarab\src\" />
<target name="init">
<tstamp/>
<mkdir dir="${buildDir}"/>
<mkdir dir="${distDir}"/>
</target>
<target name="dist" depends="init">
<jar destfile="${distDir}/package${DSTAMP}.jar" basedir="${ ClassFiles}"/>
<jar destfile="${distDir}/package-web-${DSTAMP}.jar" basedir="${mainClassFiles}"/>
<java classname="Main">
<classpath>
<pathelement location="${mainDir}"/>
<pathelement path="${Main-Class}"/>
</classpath>
</java>
</target>
</project>

编辑2:我应该提到所有内容都已编译并且我拥有所有.class 文件。这不是我需要在 Ant 文件中执行的操作。

最佳答案

有关“找不到类”的错误消息可能是由于类路径不正确造成的。

类路径应授予对应用程序所需的所有类和资源文件的访问权限。它由一组目录和 jar 文件组成。 location将表示单个目录或路径,而 path将表示多个,用 ; 分隔或:取决于您的平台。

就您而言,在我看来您希望您的类路径由 ${pegaFuzzClassFiles} 组成和${webScarabClassFiles}作为目录,或 ${distDir}/package-pega-${DSTAMP}.jar${distDir}/package-web-${DSTAMP}.jar作为 jar 文件。您可以使用单个 <pathelement path="…"/> 来完成此操作元素,但我建议多个 <pathelement location="…"/>因为我认为这更清楚。

您还应该确保您的应用程序使用的任何第三方库也在该路径上可用。您可以嵌套一个或多个<fileset>进入那个<classpath> ,每个都描述了所有 jar给定目录中的文件。

关于java - 从 Ant 构建文件运行 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544920/

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