Java 如何运行ApacheAnt生成的.jar文件?

Java 如何运行ApacheAnt生成的.jar文件?,java,intellij-idea,ant,jar,Java,Intellij Idea,Ant,Jar,我正在使用IntelliJ IDEA 2016.3.1和内置的Apache Ant 1.9.4。我使用下面给出的脚本文件来构建我的项目。jar目标生成的.jar文件没有任何错误。我可以从IDE运行我的应用程序。但是,我无法从.jar文件运行我的应用程序。我做错了什么?这是运行.jar文件的一种特殊方式 <project name="RegexDemo" basedir="."> <property name="version">1.0.0</property>

我正在使用IntelliJ IDEA 2016.3.1和内置的Apache Ant 1.9.4。我使用下面给出的脚本文件来构建我的项目。jar目标生成的.jar文件没有任何错误。我可以从IDE运行我的应用程序。但是,我无法从.jar文件运行我的应用程序。我做错了什么?这是运行.jar文件的一种特殊方式

<project name="RegexDemo" basedir=".">

<property name="version">1.0.0</property>
<property name="dir.src">src/com/fagan/demo</property>
<property name="dir.build">build</property>
<property name="dir.build.classes">${dir.build}/classes</property>
<property name="dir.build.javadoc">${dir.build}/javadoc</property>
<property name="file.jar">${dir.build}/RegexDemo-${version}.jar</property>

<path id="projectClasspath">
    <fileset dir="lib">
        <include name="**.jar"/>
    </fileset>
</path>

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

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

<target name="compile" depends="init">
    <echo>Compiling Java source</echo>
    <javac classpathref="projectClasspath"
           srcdir="${dir.src}"
           destdir="${dir.build.classes}"/>
</target>

<target name="jar" depends="compile">
    <echo>Making JAR file</echo>
    <jar basedir="${dir.build.classes}" file="${file.jar}"/>
</target>

<target name="javadoc">
    <echo>Making JavaDoc from source</echo>
    <javadoc sourcepath="${dir.src}" destdir="${dir.build.javadoc}"/>
</target>

</project>

检查清单中提到的主类是否存在于jar文件中,还检查清单中ANT生成的条目是否实际存在。
您还应该在jar任务中使用destfile属性,而不是file属性。

检查清单中提到的主类是否存在于jar文件中,同时检查清单中ANT生成的条目是否确实存在。
另外,您应该在jar任务中使用destfile属性,而不是file属性。

如果我理解不正确,请纠正我,如果您希望它通过简单的双击运行,那么它将不会运行。制作jar之后,使用命令java-jar来执行它。或者,您可以将这个命令放在jar旁边的批处理文件/shell脚本中,然后双击它就可以了。希望这有帮助。

如果我理解不正确,请纠正我,如果您希望通过简单的双击来运行它,那么它将不会运行。制作jar之后,使用命令java-jar来执行它。或者,您可以将这个命令放在jar旁边的批处理文件/shell脚本中,然后双击它就可以了。希望这能有所帮助。

您想制作一个“可运行的jar”,这就是这个名字的含义。这个问题可能会有帮助:谢谢你的回答,但这是一个尚未解决的问题。然而,我试着从那个问题中提出了一些建议,但没有效果。你说没有效果。您能指出抛出了什么类型的错误吗?标记.jar文件创建时没有任何错误。但是当我双击它来运行时,什么也没有发生。你想要做一个“可运行的jar”,这就是它的名字所暗示的。这个问题可能会有帮助:谢谢你的回答,但这是一个尚未解决的问题。然而,我试着从那个问题中提出了一些建议,但没有效果。你说没有效果。您能指出抛出了什么类型的错误吗?标记.jar文件创建时没有任何错误。但当我双击它运行时,什么也没发生。我编辑了我的问题并添加了清单文件内容。此外,我在jar目标中将'file=“${file.jar}”替换为'destfile=“${file.jar}'。所有这些都没有帮助。我编辑了我的问题并添加了清单文件内容。此外,我在jar目标中将'file=“${file.jar}”替换为'destfile=“${file.jar}'。所有这些都没有帮助。是的,我试图通过双击来运行.jar。现在,我明白我的问题了。谢谢你的回答。是的,我正试图通过双击来运行.jar。现在,我明白我的问题了。谢谢你的回答。
<target name="jar" depends="compile">
    <echo>Making JAR file</echo>
    <jar basedir="${dir.build.classes}" file="${file.jar}">
    <manifest>
        <attribute name="Main-Class" value="com.fagan.demo.MainWindow"/>
        <attribute name="Class-Path" value="${file.jar}"/>
    </manifest>
    </jar>
</target>
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.8.0_111-b14 (Oracle Corporation)
Main-Class: com.fagan.demo.MainWindow
Class-Path: build/RegexDemo-1.0.0.jar