我需要ant java jar,它执行一个没有Main-Class属性创建的jar文件。
ant Java任务的文档说jar文件必须有Main-Class清单。
有什么办法吗?
很抱歉Typos之前
用于创建JAR的build.xml的一部分 - 没有Main-Class
<target name = "createJar" depends = "javac">
<jar destfile = "./sampleJar.jar"
basedir = "build/classes"
/>
</target>
现在我想
<java jar />
这个jar文件通过将classname作为某种参数传递。可能的?
答案 0 :(得分:2)
试试这个:
<java classname="my.package.ClassWithMain">
<classpath>
<pathelement location="sampleJar.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
my.package.ClassWithMain
是具有main方法的类的完全限定名,classpath应该指向包含jar的jar。
答案 1 :(得分:2)
您可以指示Ant的java
任务使用jar文件作为类路径并直接运行主类,而不是运行jar文件。 E. g。使用以下任务,取自documentation of the java
task:
<java classname="test.Main">
<classpath>
<pathelement location="./sampleJar.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
当然,您必须根据用例调整主要类别test.Main
。