总之,我想知道,是否有一个JVM命令行选项来更改启动工作目录?如果它很重要,我运行jdk1.6.0_24。
背景:我正在使用一个名为Robolectric for Eclipse的工具在主机PC上测试Android应用程序,而不进行仿真。robolelectric要求创建一个测试项目,但测试本身要在被测试的Android项目中运行。这可以通过在Eclipse中设置测试项目的运行配置来完成:"运行所选项目、包或源文件夹中的所有测试。"
如果可能的话,我想从JVM命令行选项中执行此操作,因为我使用的另一个工具Infinitest不允许指定测试的工作目录。但是,它允许您指定JVM命令行选项。
处理:
在我找到更好的解决方案之前,一个成功的方法是从Android项目中复制AndroidManifest.xml和res文件夹。
在Java SE中,"current directory"被放在系统属性user.dir
中。
可以使用-D选项手动覆盖此值:
java -Duser.dir=/some/directory ....
但我不知道这是否也适用于Android中使用的JVM
"当前工作目录"是操作系统的概念,而不是JVM的概念,因此您需要在该级别找到解决方案,例如编写批处理或shell脚本。
我会考虑在Maven构建中运行机器人电气测试。这样就更容易进行测试了。在Eclipse中也是如此。对Maven也可能有无限的支持。