2014-02-05 58 views
1

我正在運行izpack版本4,我試圖使用Java條件。IZpack Java條件調試(IZpack 4)

Java類(減去進口和try/catch) - 編輯 - version.properties位於我Test.jar的根文件

public class Test { 
    public static boolean testResult() { 
     boolean goodVersion = false; 
     Properties versionProperties = new Properties(); 
     InputStream is = Test.class.getClassLoader().getResourceAsStream("version.properties"); 
     versionProperties.load(is); 
     String minimumVersion = versionProperties.getProperty("com.test.version"); 
     String currentVersion = "2"; 
     if(Integer.parseInt(currentVersion) - Integer.parseInt(minimumVersion) >= 0) { 
      goodVersion = true; 
     } 
     return isCompatible; 
    } 
} 

Iz的條件:

<condition type="java" id="compatibleVersion"> 
    <java> 
    <class>com.Test.Test</class> 
    <method>testResult</method> 
    </java> 
    <returnvalue type="boolean"/> 
</condition> 

如果我在它自己的jar中運行它,或者如果我運行java -classpath myInstaller com.Test.Test(使用調用靜態方法的主要方法),則java代碼返回true

然而,當我運行的IzPack安裝程序的條件仍然假(爲續宣告假)

我已經運行java -DTRACE =真正的罐子myInstaller.jar,我無法看到我的罐子任何堆棧跟蹤。我嘗試寫入C:/output.txt時獲得相同的結果(在安裝程序外運行良好,或者在使用classpath調用但不在安裝程序運行時調用)

有沒有人有關於如何獲取錯誤的任何建議從我的外部jar打包在一個izpack安裝程序的輸出?

回答

0

由於沒有人似乎有調試的答案,我認爲這可能是有幫助的問題發佈。在這種情況下,問題是我的iz.xml。

<returnvalue type="boolean"/> 

應該讀

<returnvalue type="boolean">|||expected return value|||</returnvalue> 

,因此將回報預期的返回值是否返回值匹配true或false依賴。

1

調用使用

java -DTRACE=true -DSTACKTRACE=true -DLOG=true -jar myInstaller.jar 

您的安裝程序jar將其記錄到C:Users\you\AppData\Local\Temp\IzPack_Logfile_at_...