我有两个不同的python可执行程序,它们在应用程序中引用图片或.txt
文件。当我打开它们时,它们完美地工作。我有一个我在Java中使用的主程序,通过单击执行按钮来打开应用程序:
final String filePath = appList.get(1).get(3);//a string of the file directory
try {
Runtime.getRuntime().exec(filePath);
} catch (IOException e) {
System.err.println("Caught IOException: " + e.getMessage());
}
当我从这个主程序启动程序时,即使目录保持不变,也无法再找到这些文件。唯一似乎改变的是我从java程序启动应用程序而不是单击应用程序本身。谁知道该怎么办?
编辑: 我在尝试:
String fileDir = appList.get(2).get(3).substring(0,appList.get(2).get(3).lastIndexOf("\\"))+"\\";
Process p = null;
ProcessBuilder pb = new ProcessBuilder(lastWord);
pb.directory(new File(fileDir));
p = pb.start();
但是system cannot find the file specified
。
答案 0 :(得分:3)
对通过第三个Java应用启动的每个应用使用ProcessBuilder。对于每个应用程序,请相应地设置工作目录(目标应用程序的根目录)。我怀疑你从第三个启动的两个应用程序的工作目录是使用第三个程序工作目录作为他们自己的。下面是一个如何使用ProcessBuilder的例子。
How to set working directory with ProcessBuilder
您可以查看此帖子,找到该应用程序的当前工作目录:Getting the Current Working Directory in Java。