我在PowerShell中运行一个调用java应用程序的脚本,但由于Out.of.memory.error:Heap Size,此应用程序失败。我创建了环境变量,但它没有用。从我发现的dump txt文件中,java_command_line包含-Xmx512m
选项:
IBM_JAVA_COMMAND_LINE=C:\Program Files\ (x86)\IBM\Java70\jre\bin\java.exe -Xmx512m -classpath C:\Users\IBM_ADMIN\Desktop\Nessus_Scripts\nessusconverter.exe;...
根据我的学习,这会覆盖我创建的环境变量并降低此应用程序的最大堆大小。我想它是在被调用的应用程序中编码的。我的问题是,我不知道应用程序的作者,需要它来完成我的工作。我也有时间限制,所以对这个应用程序进行深度调试或改进是不受限制的。
有没有办法覆盖应用程序中设置的选项(不干扰应用程序)?
我有Windows 7和IBM SDK Java 7.0版。
调用java app的脚本:
Function CallNessusConverter ( [Array]$input_files
[String]$output_filename, [String]$exceptions_filename,
[String]$hosts_filename, [String]$output_directory ) {
[String]$output_XML_file = $output_directory + "\" + $output_filename + ".xml"
[String]$output_Issue_file = $output_directory + "\" + $output_filename + "-Issues.csv"
[String]$output_Missed_file = $output_directory + "\" + $output_filename + "-NotScanned.csv"
[String]$input_XML_files = ""
foreach ($file in $input_files){
$input_XML_files += " " + $file
}
Write-Host "**** Calling nessusconverter ****"
[string]$CLI_nessusconverter = ".\nessusconverter -inputXMLfiles $input_files -exceptions $exceptions_filename -hosts $hosts_filename -outputXML $output_XML_file -outputIssue $output_Issue_file -rmunknown -outputMissed $output_Missed_file"
iex $CLI_nessusconverter
...
CallNessusConverter $input_files $output_filename $exceptions_filename $hosts_filename $output_directory`
答案 0 :(得分:0)
作为某种解决方法,如果没有其他解决方案,您可以尝试将java.exe替换为使用所需参数调用真实java的文件...当然,如果其他应用程序不是一个好主意也可以使用这个java.exe。