0

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

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

2 回答 2

1

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

set "PATH=%PATH%;C:\%ProgramFiles%\java\jre7\bin"
于 2013-06-15T18:29:14.280 回答
0

您的 Web 服务器正在运行的帐户很可能不会设置与您自己的帐户完全相同的环境变量,如PATH,JAVA_HOME等。

可以做些什么来修复它?

  1. 更改全局 PATH 以包含缺少的 Java 路径。
  2. 更改批处理文件以更改 PATH 以在一开始就添加缺少的 Java 路径。
  3. 更改批处理文件以使用 Java 的完全限定路径

但是,最好的方法是重构它。我会让 PHP 将您的意图写入数据库,并让另一个后台守护程序或服务从数据库中提取项目并在必要时执行任务。今天,您的 PHP 脚本将被阻止,直到您的批处理文件返回 - 不酷。从安全角度来看,这也很糟糕——您的网络服务器必须有权执行命令,这使得入侵您的网站变得更加容易。

于 2013-06-15T18:18:11.880 回答