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

PATHほとんどの場合、Web サーバーが実行されているアカウントは、自分のアカウントとまったく同じ環境変数( 、 など)を設定していませんJAVA_HOME

それを修正するために何ができますか?

  1. グローバル PATH を変更して、欠落している Java へのパスを含めます。
  2. バッチ ファイルを変更して PATH を変更し、不足しているパスを最初に Java に追加します。
  3. Java への完全修飾パスを使用するようにバッチ ファイルを変更する

ただし、最善の方法はこれをリファクタリングすることです。何かを実行する意図をPHPに書き込んで、別のバックグラウンドデーモンまたはサービスがデータベースからアイテムをピックアップし、必要に応じてタスクを実行します。今日、バッチ ファイルが返されるまで、PHP スクリプトはブロックされます。また、セキュリティの観点からも良くありません。Web サーバーはコマンドを実行する権限を持っている必要があるため、Web サイトのハッキングがはるかに容易になります。

于 2013-06-15T18:18:11.880 に答える