Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Ant脚本给类找不到异常-为什么?_Java_Ant_Task_Classnotfoundexception_Dir - Fatal编程技术网

Java Ant脚本给类找不到异常-为什么?

Java Ant脚本给类找不到异常-为什么?,java,ant,task,classnotfoundexception,dir,Java,Ant,Task,Classnotfoundexception,Dir,跑步是: /Users/JGF/Projects/emdr/lib/json_simple-1.1.jar:/usr/local/share/java/zmq.jar 我的JAVA_主页是:/Library/JAVA/HOME 那辆车坏了吗 您应该使用classpath标记,尽管path也应该在IMHO中工作。但是正确地使用它。 不要将类直接添加到路径,而只添加JAR或目录: /Users/JGF/Projects/emdr/lib/json_simple-1.1.jar:/usr/loca

跑步是:

/Users/JGF/Projects/emdr/lib/json_simple-1.1.jar:/usr/local/share/java/zmq.jar
我的JAVA_主页是:
/Library/JAVA/HOME

那辆车坏了吗


您应该使用classpath标记,尽管path也应该在IMHO中工作。但是正确地使用它。 不要将类直接添加到路径,而只添加JAR或目录:

/Users/JGF/Projects/emdr/lib/json_simple-1.1.jar:/usr/local/share/java/zmq.jar:/Users/JGF/Projects/emdr/build/classes/jgf/EMDR_Client.class
Java将首先查看JAR,然后查看目录
/Users/JGF/Projects/emdr/build/classes

要查找类
jgf.EMDR_Client
,Java将在名为
jgf
的子目录中查找名为
EMDR_Client.class
的文件。所以现在应该可以找到你的班级了


同样:Classpath元素不是类文件,而是目录或JAR文件(它们是压缩目录)

您应该使用Classpath标记,尽管path也应该在IMHO中工作。但是正确地使用它。 不要将类直接添加到路径,而只添加JAR或目录:

/Users/JGF/Projects/emdr/lib/json_simple-1.1.jar:/usr/local/share/java/zmq.jar:/Users/JGF/Projects/emdr/build/classes/jgf/EMDR_Client.class
Java将首先查看JAR,然后查看目录
/Users/JGF/Projects/emdr/build/classes

要查找类
jgf.EMDR_Client
,Java将在名为
jgf
的子目录中查找名为
EMDR_Client.class
的文件。所以现在应该可以找到你的班级了


同样:Classpath元素不是类文件,而是目录或JAR文件(它们是压缩目录)

我修改了脚本,去掉了对Classpath.run的引用,直接引用了Classpath.lib。还是叫不快乐。。。没有使用classpath标记,而是java任务的classpathref属性。。仍然没有乐趣。修改了java任务和Embeddedd类路径标记,而不是属性。那也没用。同一个旧类未发现异常。我要补充的是,zmq.jar是一个奇怪的野兽——ZeroMQ项目的一部分——我相信它只是一个围绕我在Mac上运行的本机类的JNI包装器。这不可能是找不到班级的奇怪原因吧它位于build/classes目录中,正如您从截图中看到的,它为我的回答添加了一些说明。这是有道理的,将尝试一下。。但这让我思考了Ant中java任务的dir属性的意义所在,我修改了脚本,去掉了对classpath.run的引用,直接引用了classpath.lib。还是叫不快乐。。。没有使用classpath标记,而是java任务的classpathref属性。。仍然没有乐趣。修改了java任务和Embeddedd类路径标记,而不是属性。那也没用。同一个旧类未发现异常。我要补充的是,zmq.jar是一个奇怪的野兽——ZeroMQ项目的一部分——我相信它只是一个围绕我在Mac上运行的本机类的JNI包装器。这不可能是找不到班级的奇怪原因吧它位于build/classes目录中,正如您从截图中看到的,它为我的回答添加了一些说明。这是有道理的,将尝试一下。。但它有点让我思考Ant中java任务的dir属性的意义。
<path id="classpath.run">
  <path refid="classpath.compile"/>
  <pathelement location="${build}/classes" />
</path>
/Users/JGF/Projects/emdr/lib/json_simple-1.1.jar:/usr/local/share/java/zmq.jar:/Users/JGF/Projects/emdr/build/classes