我有一个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 但是还是无法执行
<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 但是还是无法执行
抱歉 开始没明白你的意思 我用java -jar com.jar执行的时候 他说 找不到ant的jar包 也就是找不到class Project类 但是我相应的包已经加到classpath中去了
这个报空指针 在eclipse下执行正常
用java -jar com.jar 执行报空指针????
但是
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 能得到这样的路径 但是得不到文件的引用
请教如何解决
拿不到引用 有谁做过类似的东西吗 请教改怎么解决这个问题啊