2013-04-18 52 views
0

我在eclipse中有一個項目,它使用ant來編譯和jar文件以及引用的jar文件。使用Eclipse中默認java builder生成的類文件生成的jar文件工作正常,但是當使用ant編譯源代碼然後打開結果時,錯誤「錯誤:嘗試打開文件時發生意外錯誤... .... jar「結果,同時在目標版本上執行java -jar。任何人都知道我做錯了什麼?下面是build xml內容。下面是我傳遞給螞蟻無法啓動使用Ant構建的jar文件

-DInTouchV.SrcPath = $ {InTouchV.SrcPath} -DInTouchV.DropPath = $的參數:發現問題{workspace_loc/InTouchVTransferService/DIST}

<project default="create_run_jar" name="Create Runnable Jar for Project InTouchVTransferService"> 
<!--this file was created by Eclipse Runnable JAR Export Wizard--> 
<!--ANT 1.7 is required          --> 
<property name="Version" value="1.3"></property> 
<tstamp> 
    <format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss" /> 
</tstamp> 
<target name="Compile_Source"> 
    <javac srcdir="${InTouchV.SrcPath}/InTouchVTransferService/src" 
        destdir="${InTouchV.SrcPath}/InTouchVTransferService/bin" 
        classpath="${InTouchV.SrcPath}/lib/AtomClasses.jar" 
        debug="on" 
        includeantruntime="yes" 
        /> 
</target> 
<target name="create_run_jar"> 
    <mkdir dir="${InTouchV.SrcPath}/InTouchVTransferService/bin"/>  
    <jar destfile="${InTouchV.DropPath}/InTouchVTransferClient.jar" filesetmanifest="mergewithoutmain"> 
     <manifest> 
      <attribute name="Main-Class" value="com.emdat.inTouchV.main.Main"/> 
      <attribute name="Class-Path" value="."/> 
      <section name="common"> 
       <attribute name="Build-Version" value="${Version}"/> 
       <attribute name="Build-Date" value="${TODAY}"/> 
       <attribute name="Built-By" value="${user.name}"/> 
       <attribute name="JVM Version" value="${java.runtime.name} - ${java.runtime.version}" /> 
      </section> 
     </manifest> 
     <fileset dir="${InTouchV.SrcPath}/InTouchVTransferService/bin"/> 
     <zipfileset excludes="META-INF/*.SF" src="${InTouchV.SrcPath}/lib/AtomClasses.jar"/> 
    </jar> 
    <touch file="${InTouchV.DropPath}/Version.txt" /> 
    <echo file="${InTouchV.DropPath}/Version.txt">${Version}</echo> 
</target> 
</project> 
+0

您可能會遇到異步問題,其中jar進程未完成,然後再嘗試執行某些操作。你可能想要做一些日誌記錄,看看它在哪裏爆炸......並提供這些信息。 –

+0

我有winmerge比較兩個zip文件和appart明顯(時間戳在版本.txt)文件是相同的:(所有的類文件都存在,並且清單看起來是正確的。我試着移動javac任務一個不同的目標 –

+0

運行編譯步驟作爲一個單獨的目標,在jar集之前沒有解決任何問題:( –

回答

0

,屬性「JVM版本」包含一個空格。刪除了空格,jar文件正確執行。我老實說不能說爲什麼eclipse + ant jar默認的java builder與空間一起工作,但ant build + ant jar沒有。至少它的固定:D