当 运行 java 程序使用 Ant 时找不到或加载主 class 程序?

Could not find or load main class when Running java program using Ant?

我正在学习 Ant 以 运行 Java 构建和不构建 Jar 文件的程序。

这是我想要的简单程序 运行

public class ForDemo {

int i = 0;
byte b = 0;
short s = 0;
double d = 0;
float f = 0;

public ForDemo() {
for (int i = 0; i <= 1000; i++) {
        System.out.println("" + i);
    }
}

public static void main(String[] args) {
    new ForDemo();
}
}

以及 Antbuild.xml 文件

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <project default="run" basedir="." name="">
 <!--this file was created by Eclipse Runnable JAR Export Wizard-->
 <!--ANT 1.7 is required                                        -->

 <target name="compile">
  <javac srcdir="." destdir="." includes="**/*.java" target="1.8">

    <classpath refid="classpath.base" />
  </javac>

  </target>
   <target name="run"  depends="compile">
    <java fork="true" failonerror="yes" classname="ForDemo">
     <arg line=" "/>
     <classpath refid="classpath.base" />
    </java>
   </target>  <!-- Libraries on which your code depends -->

   <path id="classpath.base">                                                                                                                           
      <fileset dir="libs">                                                                                                                          
        <include name="**/*.jar" />                                                                                                          
     </fileset>                                                                                                                                   
     </path>  
    </project> 

但是我收到了这个错误

  run:
  [java] Error: Could not find or load main class ForDemo

  BUILD FAILED

当我 运行 在我的 Linux Mint 17.1 x64 with oracle jdk 1.8b40.

上 java 文件命令的父目录中蚂蚁时

您没有将 javac 任务的输出目录 (".") 包含在 java 任务的 class 路径中,因此 ForDemo class 当 java 执行时,您在那里编译的 class 不在 class 路径上。

您可以像这样在 java 任务中包含该目录:

    <classpath>
        <pathelement path="${classpath.base}"/>
        <pathelement location="."/>
    </classpath>