2011-06-22 35 views
-1

我有一個java Swing代碼,我需要在運行時調用一個Ant構建,這裏我給我的代碼是正確的執行方式,否則我會做任何更改,我也寫我的Ant構建here.While我執行這個代碼是沒有輸出我的控制檯尚屬空白,爲什麼這個問題會出現,如果任何解決方案是有好心提前發me..thanks當我通過java swing代碼執行一個螞蟻時沒有輸出

Build.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       // TODO Auto-generated method stub 

       File buildFile = new File("child_build.xml"); 
        Project p = new Project(); 
        p.setUserProperty("ant.file", buildFile.getAbsolutePath());  
        DefaultLogger consoleLogger = new DefaultLogger(); 
        consoleLogger.setErrorPrintStream(System.err); 
        consoleLogger.setOutputPrintStream(System.out); 
        consoleLogger.setMessageOutputLevel(Project.MSG_INFO); 
        p.addBuildListener(consoleLogger); 

        try { 
         p.fireBuildStarted(); 
         p.init(); 
         ProjectHelper helper = ProjectHelper.getProjectHelper(); 
         p.addReference("ant.projectHelper", helper); 
         helper.parse(p, buildFile); 
         p.executeTarget(p.getDefaultTarget()); 
         p.fireBuildFinished(null); 
        } catch (BuildException e1) { 
         //p.fireBuildFinished(e); 
        } 

       } 
      } 
     }); 
    } 

我的Ant構建是..:

<project basedir="." default="child_build" name="JavaSamp"> 
    <target name="child_build"> 
     <mkdir dir="classes" /> 
     <exec executable="C:\Program Files\Inno Setup 5\ISCC.exe"> 
      <arg value="${basedir}\Child_Script.iss" /> 
     </exec> 

     <echo message="Child_Script is executed" /> 
    </target> 
</project> 

回答

2

我剛纔評論這個,但我沒有足夠的代表做到這一點。你確定你沒有在運行時遇到異常嗎?

try { 
        p.fireBuildStarted(); 
        p.init(); 
        ProjectHelper helper = ProjectHelper.getProjectHelper(); 
        p.addReference("ant.projectHelper", helper); 
        helper.parse(p, buildFile); 
        p.executeTarget(p.getDefaultTarget()); 
        p.fireBuildFinished(null); 
       } catch (BuildException e1) { 
        //p.fireBuildFinished(e); 
       } 

這將吞下正在拋出的BuildExceptions。

+0

我看不到在我的eclipse IDE中發生了什麼,不顯示過程是否完成或者什麼 – Aerrow

+0

好的調用允許異常,至少爲了調試。伐木也有很長的路要走。 – thescientist