首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Java运行Windows命令

问如何从Java运行Windows命令
EN

Stack Overflow用户
提问于 2011-12-06 17:06:30
回答 2查看 1.4K关注 0票数 0

我想用Java执行以下命令:

"C:\Program \MySQL\MySQL Server 5.5\bin\"mysqldump -u root --密码=xxxx-例程数据库> C:\Users\john\Desktop\backup.sql

当我使用Windows应用程序时,这个命令运行得很好,但对我的cmd.exe应用程序却不是这样。

代码语言:javascript
复制
cmd = "\"C:\\Program Files\\MySQL\\MySQL Server 5.5\\bin\\\"mysqldump
-u root --password=xxxx --routines database > C:\\Users\\john\\Desktop\\backup.sql
Runtime runtime = Runtime.getRuntime(); 
process = runtime.exec(cmd);

我得到了以下错误:

"C:\Program \MySQL\MySQL Server 5.5\bin\"mysqldump -u root --密码=xxxx-例程数据库> C:\Users\john\Desktop\backup.sql java.io.IOException:无法运行程序“C:\ program”:CreateProcess error=5,访问被拒绝

你有什么想法吗?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-06 17:22:21

错误5要么是1)无法访问文件/文件夹,要么是2)没有权限。

看起来,您的“程序文件”目录名中的空格可能会造成麻烦。检查上面写着“无法运行程序""C:\ program”的地方。这显然不是对您试图运行的命令的引用。我要做的是将MySQL添加到您的路径中,然后只调用mysqldump命令,而不需要路径。如果不想这样做,可以定义一个系统变量并使用%MYSQL_HOME%\mysqldump引用它。

一旦您解析了路径,如果这仍然不能工作,您将需要查看该命令的权限。您需要确保进程具有执行命令的权限。我认为这是在当地的管理小组或类似的。

甜甜圈是你的必经之路。

票数 1
EN

Stack Overflow用户

发布于 2011-12-06 17:11:16

您正在尝试使用重定向(>),它是shell的一个函数。

如果没有shell,那么您将直接对exec进程进行mysqldump操作。

您要么需要从process对象读取输出流并自己将其写入文件,要么需要在重定向的同时为您执行exec shell以执行mysqldump。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8403831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档