有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何使用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=时,是否有其他方法给出"/"


共 (2) 个答案

  1. # 1 楼答案

    尝试执行CMD

    例如:

    proc = Runtime.getRuntime().exec("cmd.exe /c dir");
    

    它应该像这样工作,比如你的例子,它有点复杂,但试着这样做

  2. # 2 楼答案

    你的尝试并不完全相同。我认为您在c:\Program Files\IrfanView中时是从命令提示符执行命令的。当您试图从java运行相同的命令时,您提到了完整的路径。由于某些程序对当前工作目录敏感,我建议您首先尝试从其他目录(例如从c:)运行该命令,但要指定完整路径

    如果它可以手动工作,但不能从java工作,请尝试使用ProcessBuilder而不是Runtime.exec()。实际上它几乎相同,但它更面向对象,并且允许单独指定工作目录。我希望这对你有用

    如果没有,尝试使用引号。目录路径“c:\Program Files”包含空间,因此应引用该路径

    祝你好运