如何在应用程序中覆盖java -Xmx选项?

时间:2015-08-05 19:00:44

标签: java override

我在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`

1 个答案:

答案 0 :(得分:0)

作为某种解决方法,如果没有其他解决方案,您可以尝试将java.exe替换为使用所需参数调用真实java的文件...当然,如果其他应用程序不是一个好主意也可以使用这个java.exe。