install4j java内存不足错误未报告给用户

时间:2018-08-04 21:27:08

标签: java install4j

我们遇到的情况是Java确实没有足够的内存,但是直到使用-console选项运行应用程序之前,看不到可见的错误。然后,在控制台上出现了一个错误,如:

Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap

该应用程序的构建过程带有“如果在主线程中引发异常,则失败,但这似乎无济于事。 Configuration Image

java版本“ 1.8.0_162”

还有其他设置可以使这种内存错误更明显吗?

1 个答案:

答案 0 :(得分:1)

我强烈建议您在启动阶段或“欢迎使用” enter image description here

中添加验证脚本。

这样的验证脚本可以验证您想要的内容,并可以引发弹出窗口,如下面的示例所示(以下示例检查内核,并且该内核不是所需的版本,而不是不支持通过通知OS引发的消息): 根据您的情况,更改逻辑以验证是否有足够的内存。

String logfile = "/opt/ServiceStatus" + (String)context.getVariable("sys.version");
PrintWriter writer = new PrintWriter(new FileWriter(logfile, true));
String shellcommand = "uname -a";

Process p = Runtime.getRuntime().exec(shellcommand);
 p.waitFor();
 BufferedReader buf = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
String output = "";

while ((line = buf.readLine()) != null) 
{
    output += line + "\n";
}


if (!output.contains("3.10.0-514.el7.x86_64"))
{
    Util.showMessage("OS not suppurted");
    writer.println("OS not suppurted: " + output);
    writer.close();
    return false;
}    
writer.println("OS: " + output);
writer.close();
return true;