在我们的组织中,我们提供安装程序(Install4j)来构建和运行我们的产品。
在其中一个阶段,我们使用System.getProperty("java.version")
对java版本进行验证。在极少数情况下,从命令提示符输入java -version
时,它可能会出现各种错误,例如:
我遇到的问题是这些错误只会从命令提示符显示,而System.getProperty("java.version")
不会提醒任何错误,只返回版本号。
我正在寻找监控这类错误的方法并相应地停止安装程序,但我的所有尝试都是徒劳的。
修改:
我想过使用Runtime.getRuntime().exec()
,但是'java -version'响应不会回来。
答案 0 :(得分:2)
使用“运行可执行文件或批处理文件”操作,将“可执行文件”属性设置为
${installer:sys.javaHome}/bin/java.exe
“Arguments”属性
-version
和“重定向stderr”属性为“To installer variable”,子属性“Installer variable name”设置为
javaVersionOutput
操作运行后,您可以使用“运行脚本”属性来检查输出:
String output = context.getVariable("javaVersionOutput");
// TODO check output
答案 1 :(得分:0)
使用以下代码处理错误并获取警告消息:
String javaVersion = System.getProperty("java.version");
if(!javaVersion.contains("1.7")) {
System.out.println("jdk 1.7 is required.");
System.out.println("Please install jdk 1.7");
}