如何使用java执行命令

时间:2011-11-08 08:20:43

标签: java

  

可能重复:
  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=

2 个答案:

答案 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'包含空格,因此应引用路径。

祝你好运。