在Java应用程序中的特定位置执行terminal命令

时间:2014-03-05 14:00:15

标签: java

目前我有一个java Netbean项目(os X环境)。如果我使用此代码执行ls命令行:

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("./test.py");

它将在netbean项目(/ project)的根目录中执行该命令。问题是我将test.py放在另一个子文件夹(/ project / data)中。所以,如果我这样使用:

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("./data/test.py");

我在test.py中使用的依赖项存在问题,test.py也位于data子文件夹中。我尝试过喜欢的东西:

Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cd data");
pr = rt.exec("./test.py");

但它没有用......所以我的问题是,有没有办法在该子文件夹中执行命令行而不是将所有内容复制到根文件夹? (相当凌乱)。
非常感谢你。

1 个答案:

答案 0 :(得分:0)

你试过吗

rt.exec("cd data; ./test.py");

要在同一命令行中运行它吗?

编辑:那样的吗?

Runtime.getRuntime().exec("./test.py", null, new File("data"));

第三个参数是命令的上下文文件夹。

相关问题