2017-02-16 42 views
0

我的ant腳本看起來像下面 -無法運行,從ant腳本的Java類,必須提供在類路徑中的多個罐子以及

<java classname="com.ns.common.event.UpdateSiteImageProperties" failonerror="true" >  

     <arg value="${package}/"/>   
     <arg value="${install-base}/Enterprise/db/NewDB/${site.abbreviation}/site-installer.properties"/> 
     <classpath> 
      <pathelement path="${classpath}"/> 
       <fileset dir="../lib"> 
       <include name="**/*.jar" /> 
       </fileset> 
       <fileset dir="../../Java"> 
       <include name="**/*.jar" /> 
       </fileset> 
     </classpath> 
    </java> 

</target> 

我想調用java從講座UpdateSiteImageProperties罐子,我已經包括在classpath中。任何人都可以告訴我我做錯了什麼?

下面是我得到的例外 -

D:\NS\test8\Production\Enterprise\META-INF\build.xml:155: java.lang.NullPointerException 
     at com.safenet.replication.util.BulletinBoardWriter.write(Unknown Source) 
     at com.safenet.replication.util.BulletinBoardWriter.debug(Unknown Source) 
     at com.ns.common.event.UpdateSiteImageProperties.main(UpdateSiteImageProperties.java:23) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217) 
     at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152) 
     at org.apache.tools.ant.taskdefs.Java.run(Java.java:771) 
     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221) 
     at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135) 
     at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108) 
     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) 
     at org.apache.tools.ant.Task.perform(Task.java:348) 
     at org.apache.tools.ant.Target.execute(Target.java:435) 
     at org.apache.tools.ant.Target.performTasks(Target.java:456) 
     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) 
     at org.apache.tools.ant.Project.executeTarget(Project.java:1364) 
     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) 
     at org.apache.tools.ant.Project.executeTargets(Project.java:1248) 
     at org.apache.tools.ant.Main.runBuild(Main.java:851) 
     at org.apache.tools.ant.Main.startAnt(Main.java:235) 
     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) 
     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) 
+0

哪一行是你的'build.xml'中的155行? – SubOptimal

+0

'UpdateSiteImageProperties'內發生了什麼? – vegaasen

+0

行號155是 -

回答

0

我得到了我的上述問題的解決。如果其他人面臨同樣的問題,那麼他們可以做的是創建自己的路徑引用,然後將其指向您要調用您的java類的類路徑。這10行螞蟻腳本吃了我3天。但我很樂意分享它,至少有人可以節省時間。它應該看起來像下面那樣 -

<path id="dyna.jars"> 
       <fileset dir="./lib"> 
        <include name="**/*.jar" /> 
       </fileset>   
     </path>   
     <java classname="com.ns.common.event.UpdateSiteImageProperties" failonerror="true" >  
      <classpath refid="dyna.jars" /> 
      <arg value="${package}/"/>   
      <arg value="${install-base}/Enterprise/db/NewDB/${site.abbreviation}/site-installer.properties"/>     
     </java>