我在Perl中使用系统命令来执行java。我已经形成了一个数组@args,它有不同的选项来执行一个jar文件。如下所示:
$args[0] = $rootpath."/jre/bin/java";
$args[1] = " -jar \"".$rootpath."/temp/abc.jar\"";
$args[2] = " INP=\"".$inputfilename."\"";
$args[3] = " OUT=\"".$outputfilename."\"";
system(@args);
这会在执行时提供一个弹出窗口,我想要禁止它并希望它在后台运行。我希望在Linux中也可以抑制它。我尝试使用tild,但它没有帮助,如下所示。
my $command = @args;
$output = `$command`;
请帮助解决这个问题。
答案 0 :(得分:1)
使用javaw
代替java
。
这很可能归结为将第一行改为
$args[0] = $rootpath."/jre/bin/javaw";
答案 1 :(得分:0)
我尝试使用Win32 :: SetChildShowWindow(0),它运行得很好。我已经构建了Win32模块并将Win32库链接到我的应用程序。在调用系统命令之前添加以下代码后,不会显示弹出命令提示符窗口。
Win32::SetChildShowWindow(0)
if defined &Win32::SetChildShowWindow;
您也可以在此处进行讨论:Perlmonks thread