簡體   English   中英

在 PHP 中運行 shell_exec('which java') 不返回任何內容

[英]Running shell_exec('which java') in PHP return nothing

如果我跑

which java

從命令行我得到正確的輸入(/usr/java/.../bin/java)。 但是,如果我在 php 腳本中運行它:

<?
  echo 'java. ' . shell_exec('which java');
  echo 'ls. ' . shell_exec('which ls');
?>

沒有打印出哪個 java 但我得到了哪個 ls 的正確結果...

需要做兩件事:

  • JVM 的完整路徑(未在環境中設置)
  • 命令行末尾的“2>&1”。

例如:

echo shell_exec('/usr/java/jdk6/bin/java -cp myJars.jar MyMainClass arg1 2>&1");

我也剛遇到這個問題。 我試圖確定qrencode實用程序是否安裝在(任何)服務器上,如果沒有,則正常登錄/警告/退出。

考慮到程序應該始終在標准路徑中,我在which命令前面加上了二進制文件的可能位置,同時仍然考慮到$PATH可能以某種方式在系統上定義。 我認為您也可以將這種方法用於常見的 Java 路徑:

shell_exec('PATH="$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" '.
           'which qrencode');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM