调用Runtime.getRuntime().EXEC()
当我传递命令"cd filename"
完整代码时,前者不起作用;
package com.piomnicron.riles;
import java.io.File;
import javax.swing.JOptionPane;
public class A {
protected static Runtime B = Runtime.getRuntime();
public static void main(String[] args) {
File E = new File("");
System.err.println(E.getAbsolutePath());
try{
B.exec("cd "+E.getAbsolutePath()+"\\");
}catch(Throwable e)
{
JOptionPane.showMessageDialog(null, "had an oopsie!");
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
}
我的问题恰好是,为什么它抛出以下IOException:
cannot run program "cd": CreateProcess error = 2, The system could not find the file specified
Run Code Online (Sandbox Code Playgroud)
我先尝试没有+"\",以防有人认为这可能是答案,
我已经做了一些谷歌搜索,并没有一个答案,我发现回答我的问题以任何方式,他们都专注于打开一个罐子,或文件,但我只是想知道为什么cd命令不起作用.我不能使用CD的绝对路径,因为这意味着如果有人移动它所包含的文件夹,它将会中断.
错误是B.exec(); 如果你想知道的话
请原谅任何语法错误,太阳在我眼中,我几乎看不到屏幕.
您不能(有用)发出cd命令Runtime.exec.该cd命令,在大多数操作系统的,是贝壳,不是可执行的内置命令(这就是为什么你会得到你的错误),并在外壳的运行时环境中运行.虽然您可以使用Runtime.exec启动shell并cd在其中执行命令(对于Windows cmd.exe /c "cd path"),但它只会更改shell中的当前目录,而不会更改正在运行的程序.
您需要做的是使用各种功能解析程序中的目录File,并使用已解析的绝对文件路径来处理您尝试使用cd的任何内容.
如果您发布一个(新)问题,说明您尝试通过使用实现的目标cd,我们可以帮助您实现这一目标,但使用Runtime.exec问题cd不会成为解决方案.
| 归档时间: |
|
| 查看次数: |
4976 次 |
| 最近记录: |