我正在尝试
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')
答案 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<?php exec("echo hello"); ?>
的php文件如果这不起作用,请检查java是否在没有exe的路径的情况下工作,在cmd窗口中键入java --help
并查看它是否有效