Java PHP exec(),我可以启动并忘记吗?
我一直在尝试通过php表单执行java应用程序。。因此,submit按钮触发执行命令:Java PHP exec(),我可以启动并忘记吗?,java,php,exec,fire-and-forget,Java,Php,Exec,Fire And Forget,我一直在尝试通过php表单执行java应用程序。。因此,submit按钮触发执行命令: exec("java -jar c:\edu.uniroma3.jar c:\parameter2BPassed"); 第一条路径确定jar文件的位置,第二条路径用作参数 问题是脚本处理时间太长,我想绕过等待,是否真的可以像火一样把它烧了然后忘记呢?脚本将结果写入一个文件中,我可以每5分钟检查一次文件是否存在,但在等待过程完成时卡住会很不方便 有什么建议吗 提前谢谢你我想这也是同样的问题 正如注释所述,上述
exec("java -jar c:\edu.uniroma3.jar c:\parameter2BPassed");
第一条路径确定jar文件的位置,第二条路径用作参数
问题是脚本处理时间太长,我想绕过等待,是否真的可以像火一样把它烧了然后忘记呢?脚本将结果写入一个文件中,我可以每5分钟检查一次文件是否存在,但在等待过程完成时卡住会很不方便
有什么建议吗
提前谢谢你我想这也是同样的问题 正如注释所述,上述方法仅在*nix环境下有效,但我发现windows也有类似的方法: 不过,最好还是考虑其他解决方案,比如一个单独的进程,您可以将工作发送到未连接到Web服务器的进程
据我所知,Web服务器有时回收进程和后台进程并不总是孤立的,因此,除非外部进程完全独立,否则可能会导致外部进程被终止。我认为这是同样的问题 正如注释所述,上述方法仅在*nix环境下有效,但我发现windows也有类似的方法: 不过,最好还是考虑其他解决方案,比如一个单独的进程,您可以将工作发送到未连接到Web服务器的进程 据我所知,Web服务器有时回收进程和后台进程并不总是相互隔离的,因此,除非外部进程完全分离,否则您可能会将其杀死。在MSWindows上,请尝试:
exec("start java -jar c:\edu.uniroma3.jar c:\parameter2BPassed");
在MSWindows上尝试:
exec("start java -jar c:\edu.uniroma3.jar c:\parameter2BPassed");
我还想在此添加解决方案: $shell=新的COMWScript.shell; $shell->run$command,0,false;
像魔术一样工作:thx alot ircmaxell我也想在这里添加解决方案: $shell=新的COMWScript.shell; $shell->run$command,0,false;
像魔术一样工作:thx alot ircmaxell由于您在windows上,需要启动java程序,因此可以使用javaw.exe而不是java.exe windows上的javaw,旨在启动jvm而不打开cmd窗口。
也许这会有所帮助,因为您在windows上,需要启动java程序,所以可以使用javaw.exe而不是java.exe windows上的javaw,旨在启动jvm而不打开cmd窗口。
也许这会有帮助也许可以尝试system而不是exec?不确定它是否能按你想要的方式工作。。在linux中,您可以将进程放在后台。。在windows中。。。好多做一点工作,可能是OK的复制品。。由于ircmaxell,问题得以解决,这是一篇重复的文章,很抱歉,但当你使用错误的关键字时,很难找到那篇文章;我该怎么处理这个帖子?删除?我还想在这里添加解决方案:我建议您删除该问题,以防止网站出现混乱,因为它实际上是重复的。否则,答案池会被稀释,使搜索返回的结果更少而不是更多…也许可以尝试system而不是exec?不确定它是否能按你想要的方式工作。。在linux中,您可以将进程放在后台。。在windows中。。。好多做一点工作,可能是OK的复制品。。由于ircmaxell,问题得以解决,这是一篇重复的文章,很抱歉,但当你使用错误的关键字时,很难找到那篇文章;我该怎么处理这个帖子?删除?我还想在这里添加解决方案:我建议您删除该问题,以防止网站出现混乱,因为它实际上是重复的。否则答案池会被稀释,搜索结果会减少而不是增加…我担心这是一个完全不同的。。我尝试了这个execjava-jarc:\edu.uniroma3.lexmeter.jar.$XMLFileLoc/dev/null 2>/dev/null&;但是它甚至没有执行这是在linux中完成的:上面的问题是在基于windows的机器上@Nad你有windows,/dev/null在那里不存在:这也是非常非常错误的-它有时看起来会工作,但它会以奇怪和奇妙的方式破坏你的应用程序。这不是从web请求运行后台进程的方法。@symcbean-运行bg进程的更好/最好的方法是什么?恐怕这是完全不同的。。我尝试了这个execjava-jarc:\edu.uniroma3.lexmeter.jar.$XMLFileLoc/dev/null 2>/dev/null&;但是它甚至没有执行这是在linux中完成的:上面的问题是在基于windows的机器上@Nad你有windows,/dev/null在那里不存在:这也是非常非常错误的-它有时看起来会工作,但它会以奇怪和奇妙的方式破坏你的应用程序。这不是如何从web请求运行后台进程。@symcbean-运行bg进程的更好/最好方法是什么?start是阻止控制台程序。请参阅我在注释中链接到的副本…start正在阻止控制台程序。查看我在评论中链接到的副本。。。