如何进入特定目录(cd)并通过java在其中执行bash命令(python服务器)?

How to go into particular Directory (cd) and perform bash command(python server) in it through java?

我想做的是:首先进入某个目录并在我需要使用的同一目录中启动我的服务器 cd directory path 但我阅读了以前的线程并得到了 我不能使用 cd command,因为它基本上是一个系统调用,而不是像 ls 这样的命令。

我唯一的目标是以某种方式进入 Directorychooser 选择的我想要的目录并启动 python -m SimpleHTTPServer。我尝试了所有可能的答案,例如使用 sh -c 和所有其他解决方案,以解决问题,例如如何在 java 中使用 cd 命令。这可能不使用 cd. 我也有 address choosed by directorychooser into string address 。另外我如何在该目录中执行任何其他命令。我不确定 Run.exec 或 runtime.exec 是否仍然可以在这里提供帮助,因为它不支持我试过的 CD!

以前的回答问题没有很好地解释如何使用 processbuilder 和其他东西,任何帮助表示赞赏。

也试过这些 -

Runtime.getRuntime().exec(sh -c 'cd /path/to/dir && ProgToExecute

是的,有可能,我也遇到了同样的问题,我无法在任何地方做 cd,这个解决方案就是我解决它的方法。你可以用 [= 实现你想做的事情31=]ProcessBuilder。 (Runtime.exec() 也没有帮助我,正如之前关于 Whosebug 的答案所建议的那样) 以下是实现它的方法:

  • 构建流程
  • 给出路径
  • 开始进程

在代码中:

 ProcessBuilder pbuild = new ProcessBuilder(“command”); //split into number of tokens like following example

在你的例子中有 3 个像这样:

 ProcessBuilder pbuild = new ProcessBuilder("python" , "-m", "SimpleHTTPServer");

现在设置要执行进程的路径即你在这里间接执行cd directory-path

 pbuild.directory(new File(address));

(你说你的路径存储在地址中,我假设是这样)

现在开始流程

 Process proc = pbuild.start();

完成!编译并 运行 。命令将以 cd.

执行