关于执行jar 调用ant生成另一个jar文件的问题
我有一个build.xml <project name="Swing" default="jar" basedir=".">
<property name="src" value = "." />
<property name="source" value="common" />
<property name="jarpath" value="D:\workspace" />
<target name="jar">
<jar jarfile="${jarpath}/test.jar"
basedir="${source}"
manifest="MANIFEST.MF"
includes="**">
<fileset dir="${src}"/>
</jar>
</target>
</project>
在有一个MAINFEST.MF
Main-Class: com.Test
然后我在Test2.class
public class Test2 {
public static void main(String[] args){
URL u = ClassLoader.getSystemResource("com/build.xml");
File buildFile = new File(u.getPath());
Project p = new Project();
p.init();
ProjectHelper helper = ProjectHelper.getProjectHelper();
helper.parse(p, buildFile);
p.executeTarget(p.getDefaultTarget());
}
}
目录结构是
¦-com
¦ ¦-build.xml
¦ ¦-Test2.class
¦ ¦-MAINFEST.MF
com下面还有一个包common 他放了一可以执行的swing程序Test.class 所有整的目录结构是
¦-com
¦ ¦-build.xml
¦ ¦-Test2.class
¦ ¦-MAINFEST.MF
¦ ¦-common
¦ ¦ ¦-Test.class
在com的上级目录中 我也创建了一个MAINFEST.MF 内容是
Main-Class: com.Test2
用java命令创建jar
-->jar cfm com.jar MANIFEST.MF com
生产com.jar成功了 双击 但是却无法生产test.jar 具体点就是没反应 执行Test2.class的需要的ant的jar包
ant.jar,xml-apis.jar,xercesImpl.jar,ant-launcher.jar;4个jar包也已经加到了环境变量classpath中
JDK是1.6 但是还是无法执行
现在基本问题都已经解决 但是
URL u = ClassLoader.getSystemResource("com/build.xml");
File buildFile = new File(u.getPath());
这个得不到文件的引用 就是在jar文件里面的Test2.class得不到jar包里面build.xml文件的引用
路径能得到 就是XX/xx.jar!/com/build.xml 能得到这样的路径 路径是对的 但是得不到文件的引用
请教如何解决