从Jar或批处理文件执行Java运行应用程序

从Jar或批处理文件执行Java运行应用程序,java,apache,ant,build,batch-file,Java,Apache,Ant,Build,Batch File,我有一个Java应用程序和一个构建文件,其中一个任务是从应用程序创建jar文件,另一个任务是运行应用程序 <!-- ===== Create An Executable Jar target ======--> <target name="jar-task" depends="compile-task"> <mkdir dir="${jar.dir}"/> <jar destfile="jar/Guix.jar" basedir="${g

我有一个Java应用程序和一个构建文件,其中一个任务是从应用程序创建jar文件,另一个任务是运行应用程序

<!-- ===== Create An Executable Jar target ======-->
<target name="jar-task" depends="compile-task">
    <mkdir dir="${jar.dir}"/>
    <jar destfile="jar/Guix.jar" basedir="${gui_bin.dir}">
        <fileset dir="${basedir}">
            <include name="img/**/" />
            </fileset>
            <manifest>
                <attribute name="Main-Class" value="sys.deep.cepu.Start"/>
            </manifest>
            <filelist dir="${basedir}" files="user.properties"/>
    </jar>
</target>

<!-- 
    ============ Run target =================== 
    -->
<target name="run-task" depends="jar-task">
      <java classpath="${basedir};jar/Guix.jar;CK-DASP-2.0.0.jar;library/*;user.properties;img/* " classname="sys.deep.cepu.Start" fork="true">
    </java>
</target>


构建文件运行良好,jar被创建,应用程序运行良好。我希望允许用户通过单击单个文件(jar或批处理文件)来启动应用程序。我试图点击生成的可执行jar文件,但什么也没发生。这正常吗?有人能给我一个关于如何从这个jar或批处理文件执行程序的帮助吗?谢谢

是的,这是正常的。您必须从命令行或批处理脚本启动它。尝试使用作为批处理脚本(如果您有MANIFEST.MF)添加到jar中

java -ea -jar Application.jar <Parameters>

是的,这很正常。您必须从命令行或批处理脚本启动它。尝试使用作为批处理脚本(如果您有MANIFEST.MF)添加到jar中

java -ea -jar Application.jar <Parameters>

运行jar文件的其他方法

  • java-jar文件

  • java-cp jar文件MainClassNameFullyQualified


  • 运行jar文件的其他方法

  • java-jar文件

  • java-cp jar文件MainClassNameFullyQualified


  • 在构建jar文件时,您已经指定了
    主类
    。但是您没有在清单文件中指定所需的库,只是在运行应用程序时在ant文件中指定

    将另一个清单属性写入ant文件。
    名称
    应该是
    类路径
    ,该值是以空格分隔的库列表。请看一个例子

    之后,您的应用程序应在输入时启动

    java -jar Guix.jar
    

    然后按照描述的步骤双击使其可启动。

    在构建jar文件时,您已经指定了
    主类。但是您没有在清单文件中指定所需的库,只是在运行应用程序时在ant文件中指定

    将另一个清单属性写入ant文件。
    名称
    应该是
    类路径
    ,该值是以空格分隔的库列表。请看一个例子

    之后,您的应用程序应在输入时启动

    java -jar Guix.jar
    

    然后按照描述的步骤双击,使其可启动。

    可能的重复请参阅上面的重复问题链接。如果这回答了你的问题,那么你应该标记删除这篇文章。可能的重复请参阅上面的重复问题链接。如果这回答了您的问题,那么您应该标记删除此帖子。它抛出错误:找不到主类:sys.deep.cepu.Start。程序将退出。奇怪,因为主类在那里,并且它与运行任务一起工作。您是否在jar文件中包含MANIFEST.MF?嗯,jar任务中有一个元素..这就是您所指的吗?它抛出错误:找不到主类:sys.deep.cepu.Start。程序将退出。奇怪,因为主类在那里,它与运行任务一起工作。您在jar文件中包含MANIFEST.MF了吗?嗯,jar任务中有一个元素。这就是您所指的吗?