使用ANT构建eclipse项目 - 无法找到主类

时间:2015-04-21 16:28:03

标签: java eclipse ant

使用ant构建eclipse项目 - 找不到主类

我正在尝试使用ANT将我的eclipse项目构建为.jar。

我的目录结构是:

/

| --- src / DynamDNS / .java文件和build.xml

| ---来自eclipse的bin / DynamDNS / .class文件

| --- lib / .jars包含在类路径

这是我的build.xml:

<?xml version="1.0" ?>
<project name="TestMain" default="CreateJar">
  <target name="CreateJar" description="Create Jar file">
    <jar jarfile="DynamDNS.jar" basedir="." includes="**/.class">
        <manifest>
            <attribute name="Main-Class" value="DynamDNS.Connector" />
        </manifest>
    </jar>  
  </target>
</project>

正确构建,并生成一个jar。但是当我运行jar时: java -jar DynamDNS.jar

我收到错误: 错误:无法找到或加载主类DynamDNS.Connector

我肯定正确地拼写了我的类名。

此外,这些类似乎在jar中:

jar tvf DynamDNS.jar 
     0 Tue Apr 21 17:11:26 IST 2015 META-INF/
   135 Tue Apr 21 17:11:24 IST 2015 META-INF/MANIFEST.MF
  5947 Mon Apr 20 21:07:58 IST 2015 Connector.class
   979 Mon Apr 20 20:40:44 IST 2015 IPV4.class
   370 Mon Apr 20 20:40:44 IST 2015 InvalidIPV4Exception.class

包名称为DynamDNS

有没有人有任何想法?

1 个答案:

答案 0 :(得分:2)

如果您的主类是DynamDNS.Connector,则意味着Connector类位于包DynamDNS中,因此应该位于jar内的DynamDNS文件夹中,而您看起来位于jar的顶层。 / p>

我认为问题在于您的ant文件中的jar任务。删除包含并使用bin文件夹作为basedir:

<jar jarfile="DynamDNS.jar" basedir="bin">
    <manifest>
        <attribute name="Main-Class" value="DynamDNS.Connector" />
    </manifest>
</jar>  

(有关示例,请参阅https://ant.apache.org/manual/Tasks/jar.html