[英]execute java from php from different directory
我有linux服務器(Debian)。 我在目錄(reza)中有Java程序(已編譯)。 我試圖從/ var / www並通過php腳本執行此Java程序。
$com=shell_exec('java /reza/z');
當以上述格式調用時,它將返回任何結果或執行Java程序。 當我以相同的調用格式在reza文件夾中調用一個php腳本時,它將返回正確的響應:
$com=shell_exec('php /reza/a.php');
知道如何使它正確工作嗎?
PS當從php從同一目錄調用java時,它返回正確的響應:
$com=shell_exec('java z');
Java文件也被編譯並包含類文件。
Java示例代碼為:
import java.io.*;
public class z{
public static void main(String args[])throws IOException{
File file = new File("Hello1.txt");
// creates the file
file.createNewFile();
// creates a FileWriter Object
FileWriter writer = new FileWriter(file);
// Writes the content to the file
writer.write("This\n is\n an\n example\n");
writer.flush();
writer.close();
//Creates a FileReader Object
FileReader fr = new FileReader(file);
char [] a = new char[50];
fr.read(a); // reads the content to the array
for(char c : a)
System.out.print(c); //prints the characters one by one
fr.close();
}
}
問候,
終於解決了。 必須更改目標文件夾的權限並也啟用“寫入”。 謝謝大家的幫助。
使用類路徑開關:
$com=shell_exec('java -cp /reza z');
在命令中放置Java可執行文件的完整路徑(例如/ usr / bin / java)。 您可能還需要使用參數設置類路徑等。 請記住,Java是在Web服務器用戶的上下文中執行的,而不是您的個人登錄名,因此環境可能沒有使用相同值定義的相同變量,例如JRE_HOME,PATH等。
要找出具有shell exec的內容,請使用php env命令列出可用的環境變量。 我認為phpinfo()將為您提供相同的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.