首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法运行程序“.”:CreateProcess error=2

无法运行程序“.”:CreateProcess error=2
EN

Stack Overflow用户
提问于 2015-09-02 17:37:57
回答 2查看 10.3K关注 0票数 0

我试图用java执行cmd命令,但是为什么这个命令不能工作呢?当我在windows cmd中尝试它时,它可以工作,但是当我想用Java执行它时,它就是不起作用。

代码语言:javascript
复制
String cmd = "cd "+System.getenv("APPDATA")+"\\.minecraft"
Process pc = Runtime.getRuntime().exec(cmds);

你知道为什么吗?

//编辑:错误消息:

java.io.IOException:无法运行程序"cd C:\Users\Adrian\AppData\Roaming.minecraft":CreateProcess error=2,文件找不到.(未知源) at at.freakey.thundriallauncheerr.Launcher$SwingAction.actionPerformed(Launcher.java:313) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source,at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown(来源)在javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown )在java.awt.AWTEventMulticaster.mouseReleased(Unknown来源)在java.awt.Component.processMouseEvent(未知来源)在javax.swing.JComponent.processMouseEvent(Unknown来源)在java.awt.Component.processEvent(未知来源)在java.awt.Container.processEvent(未知来源)在java.awt.Component.dispatchEventImpl(未知来源)在java.awt.Containerjava.awt.LightweightDispatcher.retargetMouseEvent(Unknown源(未知源),java.awt.LightweightDispatcher.processMouseEvent(Unknown源( java.awt.LightweightDispatcher.dispatchEvent(Unknown源),java.awt.Container.dispatchEventImpl(未知源),java.awt.Window.dispatchEventImpl(未知源),java.awt.Component.dispatchEvent(未知源),java.awt.EventQueue (未知源)(未知来源)在java.awt.EventQueue$3.运行(未知来源)在java.awt.EventQueue$3.运行(未知源)在java.security.AccessController.doPrivileged(Native方法(在java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)在java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown来源)在java.awt.EventQueue$4 .运行(未知源)在java.awt.EventQueue$4java.security.AccessController.doPrivileged(Native方法中的.run(未知源)在java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown源)在java.awt.EventQueue.dispatchEvent(未知源在java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown源)在java.awt.EventDispatchThread.pumpEventsForFilter(Unknown源(在java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown源)在java.awt.EventDispatchThread.pumpEvents(Unknown源)在java.awt.EventDispatchThread上.pumpEvents(未知源) at java.awt.EventDispatchThread.run(未知源),由: java.io.IOException: CreateProcess error=2,Das系统kann die angegebene Datei nicht在java.lang.ProcessImpl.create(本地方法)在java.lang.ProcessImpl.(未知源)在java.lang.ProcessImpl.start(未知源). 41

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-02 18:10:00

cd不是您可以执行的程序。即使你可以,它也什么也做不了。

当您exec时,将启动一个新进程。这个新进程独立于您的流程( Java进程),并具有自己的“当前目录”。更改该进程中的当前目录将影响进程的当前目录,而不是

cd是命令行程序cmd.exe的内置命令.要运行cd命令,需要运行cmd.exe /c cd ...。但正如我刚才所说,这将是毫无意义的(这一过程将立即结束)。

至于更改Java的当前目录,请参见:Changing the current working directory in Java?

票数 4
EN

Stack Overflow用户

发布于 2015-09-02 17:55:21

我认为该主管正在检查文件"cd C:\Users\Adrian\AppData\Roaming.minecraft“是否存在。

与其执行"cd C:\Users\Adrian\AppData\Roaming.minecraft“,不如使用适当版本的exec方法:

代码语言:javascript
复制
exec(java.lang.String command, java.lang.String[] envp,java.io.File workDir)

例如:

代码语言:javascript
复制
exec("executablefilename", null, "C:\Users\Adrian\AppData\Roaming.minecraft")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32359721

复制
相关文章

相似问题

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