使用RunTime.exec()时,可以指定子进程的工作目录(非常有用,如果执行的应用程序只能在访问某些本地配置文件时从其位置启动)
如果外部应用程序是一个jar文件,on可以读取jar中的清单以获取有关主类和类路径的信息,然后调用invoke()来运行应用程序......
有没有办法在那里设置工作目录?我似乎无法找到这样做的方法?或者我是否必须使用RunTime.exec()并实际调用'java -jar app.jar'...
提前感谢您的帮助 大卫
答案 0 :(得分:4)
我想说,如果你有一个你编写的应用程序,它取决于工作目录的设置,你做错了。使用Class.getResource和Class.getResoruceAsStream并将填充路径传递给“main(String [])”的参数以删除路径依赖性。
还有System.getProperty(“user.dir”);获取工作direcvtory的方法,但你不能调用System.setProperty(“user.dir”...)来改变它。
答案 1 :(得分:1)
我相信答案是否定的。你恐怕不得不使用Runtime.exec()
。
答案 2 :(得分:0)
根据Mindprod site和this article,由于当前目录在程序执行过程中无法更改,因此File构造函数不需要将其嵌入到每个File对象中。