我正在运行 izpack 版本 4,并且我正在尝试使用 java 条件。
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 代码,或者运行 java -classpath myInstaller com.Test.Test (使用调用静态方法的 main 方法),则 java 代码将返回 true
但是,当我运行 izpack 安装程序时,条件仍然为 false(因为 catch 声明为 false)
我已经运行了 java -DTRACE=true -jar myInstaller.jar 并且我看不到 jar 中的任何堆栈跟踪。我尝试在捕获相同结果时写入 C:/output.txt (在安装程序外部运行良好,或者使用类路径调用时运行良好,但在安装程序运行时则不然)
有人对如何从 izpack 安装程序中打包的外部 jar 获取错误输出有任何建议吗?
最佳答案
使用调用您的安装程序 jar
java -DTRACE=true -DSTACKTRACE=true -DLOG=true -jar myInstaller.jar
将使其记录到C:Users\you\AppData\Local\Temp\IzPack_Logfile_at_...
关于java - IZpack java条件调试(IZpack 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21575945/