从Ant创建的可执行jar文件不起作用

时间:2014-11-16 16:03:17

标签: java eclipse ant jar scripting

我正在尝试使用Ant创建一个可执行文件(双击)jar。我的类是ChatClient和ChatServer,它是一个简单的多线程聊天服务器。我在阅读教程之后创建了build.xml,但这里似乎有些不对劲。 我得到的错误是, 错误:无法找到或加载主类C:...(jar文件的路径)

我的项目名称是JamesPractice,包名称是SimpleChat。类是SimpleChatServer和SimpleChatClient

<?xml version="1.0"?>
<project name = "JamesPractice" default= "jar" basedir =".">
<property name = "src.dir" location = "src" />
<property name = "build.dir" location = "c:\Build" />
<property name = "project.name" value = "JamesPractice" />
<property name="lib.dir" location="lib" />

<target name = "clean">
    <delete dir="${build.dir}" />
</target>

<target name = "makedir">
    <mkdir dir= "${build.dir}" />
    <mkdir dir= "${build.dir}\classes" />
</target>

<target name = "compile" depends = "clean, makedir">
    <javac srcdir = "${src.dir}" destdir = "${build.dir}\classes" />
</target>

<target name = "jar" depends = "compile">
    <jar destfile = "${build.dir}/jars/${ant.project.name}.jar" basedir = "${build.dir}/classes" />
    <manifest file = "MANIFEST.MF">
        <attribute name = "Main-Class" value = "SimpleChat.SimpleChatServer"/>
        <attribute name = "Class-Path" value = "."/>
    </manifest>

</target>

MANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.2
Created-By: 1.7.0_11-b21 (Oracle Corporation)
Main-Class: SimpleChat.SimpleChatClient

Editied 我合并了两个类,它工作正常。但是.jar仍然给我同样的错误。用HelloWorld进行测试,看看能不能正常工作......

1 个答案:

答案 0 :(得分:0)

移动&#34;清单&#34;部分在&lt; jar&gt; ...&lt; / jar&gt;下标记:

<target name = "jar" depends = "compile">
    <jar destfile = "${build.dir}/jars/${ant.project.name}.jar" basedir = "${build.dir}/classes">
        <manifest file = "MANIFEST.MF">
            <attribute name = "Main-Class" value = "SimpleChat.SimpleChatServer"/>
            <attribute name = "Class-Path" value = "."/>
        </manifest>
    </jar>
</target>

最好使用Maven而不是老式Ant。几年前,Maven成为行业标准。

相关问题