Method.invoke()与RunTime.exec()

时间:2009-12-17 15:52:06

标签: java

使用RunTime.exec()时,可以指定子进程的工作目录(非常有用,如果执行的应用程序只能在访问某些本地配置文件时从其位置启动)

如果外部应用程序是一个jar文件,on可以读取jar中的清单以获取有关主类和类路径的信息,然后调用invoke()来运行应用程序......

有没有办法在那里设置工作目录?我似乎无法找到这样做的方法?或者我是否必须使用RunTime.exec()并实际调用'java -jar app.jar'...

提前感谢您的帮助 大卫

3 个答案:

答案 0 :(得分:4)

我想说,如果你有一个你编写的应用程序,它取决于工作目录的设置,你做错了。使用Class.getResourceClass.getResoruceAsStream并将填充路径传递给“main(String [])”的参数以删除路径依赖性。

还有System.getProperty(“user.dir”);获取工作direcvtory的方法,但你不能调用System.setProperty(“user.dir”...)来改变它。

答案 1 :(得分:1)

我相信答案是否定的。你恐怕不得不使用Runtime.exec()

答案 2 :(得分:0)

根据Mindprod sitethis article,由于当前目录在程序执行过程中无法更改,因此File构造函数不需要将其嵌入到每个File对象中。