微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

构build可运行的jar时Ant会卡住

又是我。 我一直在尝试使用ant脚本将Java项目创build为可运行的jar。 这是我的build.xml

<project name="simple-app" basedir="." default="main"> <property name="src.dir" value="src" /> <property name="build.dir" value="build" /> <property name="classes.dir" value="${build.dir}/classes" /> <property name="jar.dir" value="${build.dir}/jar" /> <property name="lib.dir" value="lib" /> <property name="main-class" value="app.App" /> <path id="classpath"> <fileset dir="${lib.dir}"> <include name="*.jar" /> </fileset> <dirset dir="${build.dir}"> <include name="classes"/> </dirset> </path> <target name="clean"> <delete dir="${build.dir}" /> </target> <target name="compile"> <mkdir dir="${classes.dir}"/> <javac source="1.7" target="1.7" includeantruntime="false" srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath" /> </target> <target name="jar" depends="compile"> <mkdir dir="${jar.dir}" /> <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}" includes="*.class"> <manifest> <attribute name="Main-Class" value="${main-class}" /> </manifest> </jar> </target> <target name="run" depends="jar"> <java classname="${main-class}"> <classpath> <path refid="classpath" /> <path location="${jar.dir}/${ant.project.name}.jar" /> </classpath> </java> </target> <target name="main" depends="clean,run"/> </project>

一切顺利,但是当它“运行”时就会卡住了。 terminal说运行:没有任何反应。 等了30分钟,什么也没有。 我尝试了很多其他的select,我发现互联网上,但是导致相同的滞后,或抛出ClassNotFoundException。

我认真不知道该怎么做。 当我用Eclipse制作文件时,一切正常。 任何人都可以帮助我? 这可能是非常愚蠢的,但我只是不明白。 非常感谢你。

如何在Unix Shell脚本中进行并行处理?

从ant的sshexec传递密码到“su”命令

用于跨平台的Apache Ant的常用环境variables列表将生成

Proguard错误:期望类path分隔符 – 不知道我需要把path放在引号中

Cordova在Ubuntu中添加平台错误

使用ANT_OPTS来影响目标Java应用程序

我怎么能包括常春藤依赖和它的依赖关系?

Apache Ant的差异 – 执行与应用

通过Jenkins的Ant:在构build仍在运行时,在控制台输出中“构build成功”(BUILD SUCCESSFUL)

在速度方面,Ant的recursionchmod是否可以与exec进行竞争?

要修复ClassNotFoundException异常,您需要将类路径包含在jar的清单中。 manifestclasspath任务非常有用:

<target name="jar" depends="compile"> <mkdir dir="${jar.dir}" /> <manifestclasspath property="jar-classpath" jarfile="${jar.dir}/${ant.project.name}.jar"> <classpath refid="classpath" /> </manifestclasspath> <jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}" includes="*.class"> <manifest> <attribute name="Main-Class" value="${main-class}" /> <attribute name="Class-Path" value="${jar-classpath}" /> </manifest> </jar> </target>

这使您能够如下调用jar:

<java jar="${jar.dir}/${ant.project.name}.jar" fork="true"/>

或从命令行:

java -jar /path/to/myproject.jar

最后,这可能无法解释为什么你的构建挂….是否有可能代码进入等待状态?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐