在Windows下通过exec()从CLI执行java

时间:2012-03-30 08:44:43

标签: php exec command-line-interface

我有一个最初在Ubuntu上开发的PHP脚本,它现在必须在Windows机器上运行,执行这样的java程序:

exec("java -jar {$filename}");
// Process output

这在Windows上无法正常工作。我已经发现,虽然我可以在命令提示符下使用java -version但我无法在exec()中使用它,即找不到java的问题。

我有一个解决方法,如果脚本在Windows上运行,则使用C:\Program Files\Java\...\java.exe的完整路径指向java.exe。不幸的是,尽管这是硬编码到当前机器上的路径,其可能在不同的系统上改变或变化,例如,将Java安装到其他位置或安装不同版本(JRE / JDK / 6/7)时。

如何在不调用java.exe的确切位置的情况下在Windows上调用Java?

2 个答案:

答案 0 :(得分:2)

您需要在Windows上设置环境变量,才能访问没有路径的java

http://www.java.com/en/download/help/path.xml

答案 1 :(得分:0)

即使这个问题有点老了,我遇到了同样的问题,在没有PATH要求的情况下,我找到了一个非常简洁的解决方案。

此文件夹中的所有java executabled都有一个符号链接:

C:\ProgramData\Oracle\Java\javapath

例如:只需致电

C:\ProgramData\Oracle\Java\javapath\java.exe -jar XYZ.jar