2014-02-05 38 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_...