Java调用cmd执行dos命令问题

时间:2022-09-02 20:20:28
Java使用process调用cmd执行dos命令,在开发机器(Windows 7 64bit 专业版)运行无问题,部署至服务器(Windows Server 2003 64位)提示不是内部或外部命令,也不是可运行的程序或批处理文件。
部分关键代码如下:
execute.cmd("cmd.exe", "/c", "netstat", "-ano|findstr", "\"8085\"");

8 个解决方案

#1


打开服务器的cmd看一下你的命令是不是兼容的就可以了

#2


楼上+1  。。

#3


引用 1 楼 ch1240249252 的回复:
打开服务器的cmd看一下你的命令是不是兼容的就可以了

服务器的cmd命令行可以执行以上命令,使用java代码调用就无法执行

#4


那就很有可能是转义字符之类的错误了,你还提示的是不是命令,也就是说java执行没有问题,那就是代码的输入出现了问题,有很多时候windows跟服务器又不一样 Java调用cmd执行dos命令问题

#5


我还记的上一次,我windows少打了一个斜杠,本地就没问题,一上服务器,马上就over了 Java调用cmd执行dos命令问题

#6


同样的代码可以运行cd命令 无法运行netstat

#7


引用 6 楼 chen495689231 的回复:
同样的代码可以运行cd命令 无法运行netstat

那就换个思路生成,你把命令写在bat中,java直接运行,这肯定没问题了吧 Java调用cmd执行dos命令问题

#8


已解决,使用processbuilder在start调用之前,为其指定工作目录。
 processBuilder.directory(new File("C:/Windows/System32"));

#1


打开服务器的cmd看一下你的命令是不是兼容的就可以了

#2


楼上+1  。。

#3


引用 1 楼 ch1240249252 的回复:
打开服务器的cmd看一下你的命令是不是兼容的就可以了

服务器的cmd命令行可以执行以上命令,使用java代码调用就无法执行

#4


那就很有可能是转义字符之类的错误了,你还提示的是不是命令,也就是说java执行没有问题,那就是代码的输入出现了问题,有很多时候windows跟服务器又不一样 Java调用cmd执行dos命令问题

#5


我还记的上一次,我windows少打了一个斜杠,本地就没问题,一上服务器,马上就over了 Java调用cmd执行dos命令问题

#6


同样的代码可以运行cd命令 无法运行netstat

#7


引用 6 楼 chen495689231 的回复:
同样的代码可以运行cd命令 无法运行netstat

那就换个思路生成,你把命令写在bat中,java直接运行,这肯定没问题了吧 Java调用cmd执行dos命令问题

#8


已解决,使用processbuilder在start调用之前,为其指定工作目录。
 processBuilder.directory(new File("C:/Windows/System32"));