如何使用java执行命令
Possible Duplicate:
Java execute a command with a space in the pathname
我有以下命令
i_view32.exe C:\*.bmp /import_pal=C:\default.pal /convert=D:\temp\*.bmp
当我运行命令提示符时,它可以正常工作。
我试图在java的帮助下运行相同的命令
Process p = Runtime.getRuntime().exec(System.getenv("ProgramFiles")+"\\IrfanView\\i_view32.exe c:\\*.bmp /import_pal= 1.pal /convert=d:\\temp\\*.bmp");
但是我无法在d:\\temp\\
文件夹中获得输出。谁能告诉我哪里错了
提前谢谢
当我使用斜杠/import_pal=
时,是否有其他方法给出"/"
# 1 楼答案
尝试执行CMD
例如:
它应该像这样工作,比如你的例子,它有点复杂,但试着这样做
# 2 楼答案
你的尝试并不完全相同。我认为您在
c:\Program Files\IrfanView
中时是从命令提示符执行命令的。当您试图从java运行相同的命令时,您提到了完整的路径。由于某些程序对当前工作目录敏感,我建议您首先尝试从其他目录(例如从c:)运行该命令,但要指定完整路径如果它可以手动工作,但不能从java工作,请尝试使用ProcessBuilder而不是
Runtime.exec()
。实际上它几乎相同,但它更面向对象,并且允许单独指定工作目录。我希望这对你有用如果没有,尝试使用引号。目录路径“c:\Program Files”包含空间,因此应引用该路径
祝你好运