如何通过java进入特定目录(cd)并在其中执行bash命令(python服务器)?
我想做的是:首先进入某个目录,在需要使用如何通过java进入特定目录(cd)并在其中执行bash命令(python服务器)?,java,bash,javafx,cd,Java,Bash,Javafx,Cd,我想做的是:首先进入某个目录,在需要使用cd目录路径的同一目录下启动服务器,但我读了前面的线程,发现我不能使用cd命令,因为它基本上是一个系统调用,而不是像ls这样的命令 我唯一的目标是以某种方式进入由Directorychooser选择的所需目录,并启动python-msimplehttpserver。我尝试了所有可能的答案,比如使用sh-c,以及所有其他解决方案,比如如何在java中使用cd命令。不使用cd也可以吗。 我还将directorychooser选择的地址转换为字符串地址。另外,我
cd目录路径的同一目录下启动服务器,但我读了前面的线程,发现我不能使用cd命令,因为它基本上是一个系统调用,而不是像ls
这样的命令
我唯一的目标是以某种方式进入由Directorychooser
选择的所需目录,并启动python-msimplehttpserver
。我尝试了所有可能的答案,比如使用sh-c,以及所有其他解决方案,比如如何在java中使用cd命令。不使用cd也可以吗。
我还将directorychooser选择的地址转换为字符串地址。另外,我如何执行该目录中的任何其他命令。我不确定是Run.exec
还是runtime.exec仍然可以在这里提供帮助,因为它不做我尝试过的CD
前面的问题并没有很好地解释如何使用processbuilder和其他东西,任何帮助都将不胜感激
我也试过这些-
Runtime.getRuntime().exec(sh -c 'cd /path/to/dir && ProgToExecute
是的,这是可能的,我也遇到了同样的问题,我无法在任何地方制作cd
,我就是这样解决的。你可以用ProcessBuilder实现你想要做的事情。(Runtime.exec()也没有帮助我,正如前面关于stackoverflow的回答所建议的那样)
以下是如何实现这一目标:
- 构建流程
- 指路
- 开始这个过程
代码:
ProcessBuilder pbuild = new ProcessBuilder(“command”); //split into number of tokens like following example
在您的案例中,有3个是这样的:
ProcessBuilder pbuild = new ProcessBuilder("python" , "-m", "SimpleHTTPServer");
现在设置要执行流程的路径,即在此处间接执行cd目录路径
pbuild.directory(new File(address));
(你说你的路径存储在地址中,我猜是这样的)
现在开始这个过程
Process proc = pbuild.start();
完成了!编译并运行。命令将使用cd
执行