gpt4 book ai didi

java - 在 ant 的另一个目录中运行 java 时出错

转载 作者:行者123 更新时间:2023-12-01 15:54:58 26 4
gpt4 key购买 nike

我在包 client 中有一个简单的类 FabricClient,带有 public static void main()。该包位于我项目的“bin”目录中。从 bin 目录中,在命令行上,我可以执行此类中的 main,如下所示:

user@sys /c/projects/myproject/bin
$ java -classpath .;c:\dir\my.jar client.FabricClient

我想从父目录 (/c/projects/myproject) 中手动运行 java 命令来执行 ant build.xml 文件。我尝试使用 dir 属性,如下所示:

  <target name="run-client">
<java classname="client.FabricClient"
classpath="${classpath}"
fork="true"
failonerror="true"
dir="./bin">
</java>
</target>

我的类路径变量确实具有当前目录以及命令行上使用的 my.jar 目录(我的 ant 命令编译类可以使用相同的变量正常工作)

以下是用于生成类路径的设置

  <property name="my.jar" location="c:\dir\my.jar" />
<property name="classpath" location=".:${my.jar}:." />

我收到典型的 java.lang.NoClassDefFound 错误:client/FabricClient

我使用的是 Ant 版本 1.7.0

如果我将 build.xml 文件移入 bin 并删除 dir 属性,它就可以正常工作。可以从本地目录以外的目录运行java吗?我认为这就是 dir 属性的作用。

最佳答案

ant 中的路径通常是这样引用的:

<java classname="client.FabricClient"
fork="true"
failonerror="true"
dir="./bin">
<classpath>
<pathelement location="C:/dir/my.jar"/>
</classpath>

它更具可读性和可靠性

关于java - 在 ant 的另一个目录中运行 java 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5260846/

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