从php启动.bat给我一个错误'java'无法识别

时间:2013-06-15 18:05:13

标签: java php batch-file exec

当使用php启动.bat时,我得到这个“java不被识别为内部或外部命令”但是当在Windows中单击.bat时它将正常启动。这是我用来启动的代码。蝙蝠

exec('START D:\http\ftp\vanilla-server\run.bat');

2 个答案:

答案 0 :(得分:1)

试试这个(在你的批处理中,对于x32 Win):

set "PATH=%PATH%;C:\%ProgramFiles%\java\jre7\bin"

答案 1 :(得分:0)

您的网络服务器运行的帐户最有可能不会将PATHJAVA_HOME等完全相同的环境变量设置为您自己的帐户。

可以做些什么来解决它?

  1. 更改全局PATH以包含缺少Java的路径。
  2. 更改批处理文件以更改PATH,以便在最开始时向Java添加缺少的路径。
  3. 更改批处理文件以使用Java的完全限定路径
  4. 然而,最好的方法是重构这个。我希望PHP能够将您的意图写入数据库,并从数据库中获取另一个后台守护程序或服务提取项,并在必要时执行任务。今天,您的PHP脚本将被阻止,直到您的批处理文件返回 - 而不是很酷。从安全角度来看,它也很糟糕 - 您的Web服务器必须具有执行命令的权限,这使得破解您的网站变得更加容易。