我有一个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 但是还是无法执行 

解决方案 »

  1.   

    jar cvfm com.jar MANIFEST.MF com/ . 
      

  2.   

    晕,谁让你双击的,,命令行输入:java -jar com.jar,这样才是执行com.jar
      

  3.   

    谁告诉你的 要是双击不行  我还配置MANIFEST.MF干嘛 搞笑呢
      

  4.   


      抱歉  开始没明白你的意思  我用java -jar com.jar执行的时候 他说 找不到ant的jar包 也就是找不到class Project类 但是我相应的包已经加到classpath中去了
      

  5.   

    File buildFile = new File(u.getPath()); 
    这个报空指针  在eclipse下执行正常 
    用java -jar com.jar 执行报空指针????
      

  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 能得到这样的路径 但是得不到文件的引用 
    请教如何解决
      

  7.   

    用相对路径吧,,不要用xx.jar,如果你jar名字改了不就又挂了?
      

  8.   

    我现在执行的class是调用ant  它有个方法是要拿到当前jar包里面的build.xml引用  但是我现在只能拿到文件的内容
     拿不到引用  有谁做过类似的东西吗 请教改怎么解决这个问题啊