又是我。 我一直在尝试使用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放在引号中
使用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] 举报,一经查实,本站将立刻删除。