我有以下命令
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=
答案 0 :(得分:0)
尝试执行CMD
示例:
proc = Runtime.getRuntime().exec("cmd.exe /c dir");
它应该像这样工作,对于你的例子它有点复杂,但尝试这种方式。
答案 1 :(得分:0)
2你的尝试并不完全相同。我认为您在c:\Program Files\IrfanView
时从命令提示符执行了命令。当您尝试从java运行相同的命令时,请提及完整路径。由于某些程序对当前工作目录很敏感,我建议您首先尝试从其他目录运行该命令(例如从c :),但指定完整路径。
如果它可以手动工作但不能从java工作,请尝试使用ProcessBuilder而不是Runtime.exec()
。实际上它几乎相同,但它更面向对象,并允许单独指定工作目录。我希望这对你有用。
如果没有尝试使用引号。目录路径'c:\ Program Files'包含空格,因此应引用路径。
祝你好运。