从Jar或批处理文件执行Java运行应用程序
我有一个Java应用程序和一个构建文件,其中一个任务是从应用程序创建jar文件,另一个任务是运行应用程序从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
<!-- ===== 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文件的其他方法
运行jar文件的其他方法
在构建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任务中有一个元素。这就是您所指的吗?