在ant的另一个目录中运行java时出错
我在包客户机中有一个简单的类FabricClient,它带有一个公共静态void main()。此包位于我的项目的“bin”目录中。从bin目录,在命令行上,我可以执行此类中的main,如下所示:
user@sys /c/projects/myproject/bin
$ java -classpath .;c:\dir\my.jar client.FabricClient
我想执行我的ant构建。来自父目录(/c/projects/myproject)的xml文件,我在其中手动运行java命令。我尝试使用dir属性,如下所示:
<target name="run-client">
<java classname="client.FabricClient"
classpath="${classpath}"
fork="true"
failonerror="true"
dir="./bin">
</java>
</target>
My classpath变量既有当前目录,也有My的目录。命令行上使用的jar(编译类的ant命令可以很好地使用相同的变量)
以下是用于生成类路径的设置
<property name="my.jar" location="c:\dir\my.jar" />
<property name="classpath" location=".:${my.jar}:." />
我得到了典型的java。lang.NoClassDefFound错误:客户端/FabricClient
我使用的是Ant 1.7.0版
如果我移动构建。将xml文件放入bin并删除dir属性,效果良好。可以从本地目录以外的目录运行java吗?我以为dir属性就是这么做的
# 1 楼答案
您的类路径应该包含文件my。jar,而不是我的。罐子是
# 2 楼答案
ant中的路径通常如下所示:
它更具可读性和可靠性