从php exec或shell_exec运行java jar不适用于蜡染

时间:2011-05-27 15:51:56

标签: java php iis-7 exec

我正在尝试

exec(java -jar "C:\batik\batik-rasterizer.jar" -m image/png -d 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"); 

它没有给我任何结果,任何人都可以建议我做错了什么。

机器是windows 2008 R2企业 iis 7 用fastcgi

exec('java -version')

2 个答案:

答案 0 :(得分:1)

您可能想要检查前进和后退斜杠

exec(java -jar "C:\batik\batik-rasterizer.jar" -m image/png -d 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg");

可能会尝试斜线:

exec('java -jar "C:/batik/batik-rasterizer.jar" -m image/png -d 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"');

或正斜杠w / param路径:

exec('java -jar "C:/batik/batik-rasterizer.jar" -m C:/pathto/image/png -d 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"');

更新抱歉,我认为这是反斜杠

可能会尝试斜杠:

exec('java -jar "C:\batik\batik-rasterizer.jar" -m image\png -d 
"C:\pathtoimg\temp\2fa8af078803491746235057c546c1b6.png" -w 800 
"C:\pathtoimg\temp\2fa8af078803491746235057c546c1b6.svg"');

或反斜杠w / param路径:

exec('java -jar "C:\batik\batik-rasterizer.jar" -m C:\pathto\image\png -d 
"C:\pathtoimg\temp\2fa8af078803491746235057c546c1b6.png" -w 800 
"C:\pathtoimg\temp\2fa8af078803491746235057c546c1b6.svg"');

同样,Barkermn01指出exec()需要字符串输入

答案 1 :(得分:1)

您的计算机是否已关闭UAC? (Windows 7或Vista,访问C:没有UAC权限会出错,所以为了方便关闭它),

其次,exec需要字符串输入,

第三,\需要像Phill所说的那样逃脱

exec('java -jar "C:/batik/batik-rasterizer.jar" -m C:/pathto/image/png -d 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.png" -w 800 
"C:/pathtoimg/temp/2fa8af078803491746235057c546c1b6.svg"');

最新评论PHILLS

使用CLI

检查您是否允许使用exec / system / backticks
  1. 在其中创建一个包含<?php exec("echo hello"); ?>的php文件
  2. 然后启动CMD,
  3. 打开一个新窗口(打开我的/计算机)并浏览到您的php.exe应用程序
  4. 复制找到它的文件夹的地址
  5. 在cmd中键入“cd”,不带引号,然后右键单击并单击pase,然后按Enter键
  6. 键入“php”(再次没有引号)拖动保存到cmd框中的php文件并将其删除
  7. 然后点击Enter并查看它是否在cmd框中显示问号
  8. 如果这不起作用,请检查java是否在没有exe的路径的情况下工作,在cmd窗口中键入java --help并查看它是否有效