我先给出一些背景知识。我有三个文件:test.php,test.txt,myJar.jar。以下是每个代码中的代码
test.php的:
<?php
exec("java -cp myJar.jar Hello test.txt", $o);
print_r($o);
?>
用于制作myJar.jar文件的实际代码:
import java.io.*;
public class Hello
{
public static void main(String[] args) throws Exception
{
FileReader file = new FileReader(args[0]);
BufferedReader reader = new BufferedReader(file);
String line = reader.readLine();
while (line != null)
{
System.out.println(line);
line = reader.readLine();
}
}
}
的test.txt:
hello hello dinosir
this is a test
testing to the extreme
adding more crap here
and here
现在我将这些文件放在htdocs中并使用chrome运行localhost / test.php我得到:
完全符合我的要求。问题是当我将这些文件上传到github并将其链接到azure上的网站时,我会访问该网站,但我只看到了Array()。我假设它是因为Azure没有jre来运行&#34; java -cp myJar.jar Hello test.txt&#34;命令。关于如何在azure上安装/启用jre以使test.php以与我的localhost相同的方式运行的任何想法
答案 0 :(得分:2)
您检查过您的网站配置吗?确保Java没有设置为&#34; off&#34; (默认)
答案 1 :(得分:0)
在Azure中将此工作作为PHP应用程序的唯一方法是创建.bat
文件。就像这样:
example.bat
应该包含以下内容:
set PATH=%PATH%;%JAVA_HOME%/bin
java -jar %~dp0java-file.jar %*
重要的是要意识到您应该更改的唯一内容是java-file.jar
,并且需要使用%~dp0
和%*
进行修改。
然后使用.bat
执行php
文件:
exec("example.bat", $output);
多数民众赞成。适合我。