2011-10-20 36 views
1

总之,我想知道,有没有JVM的命令行选项来更改开始工作目录?如果它很重要,我正在运行jdk1.6.0_24。是否有JVM命令行选项来更改目录?

背景:

我使用了一个名为Robolectric工具为Eclipse测试主机PC上的Android应用程序,而不仿真。 Robolectric需要创建一个测试项目,但测试本身将从Android项目中运行。这是通过从Eclipse完成的,将运行配置设置为测试中的项目,设置如下:“在所选项目,软件包或源文件夹中运行所有测试”。

我想从JVM命令行选项中做到这一点,如果可能的话,因为我使用的另一个工具,Infinitest,doesn't allow您指定测试的工作目录。但是,它可以让您指定JVM命令行选项。

解决方法:

直到我找到一个更好的解决办法,一个成功的克鲁格一直到AndroidManifest.xml中和res文件夹从Android项目复制。

回答

1

“当前工作目录”是一个操作系统的概念,而不是一个JVM,所以你需要找到在该级别的解决方案,比如写一个批处理或shell脚本。

+0

谢谢,但我需要在我的问题的背景部分给出的理由的命令行选项。 –

+0

是的,我看到了。我说的是,你不能用JVM参数来做到这一点。 –

+0

Infinitest不允许您调用shell脚本,只能更改标志。 –

7

在Java SE,“当前目录”被放入系统属性user.dir

使用-D选项可能工作手动覆盖此值:

java -Duser.dir=/some/directory .... 

但我不知道这是否也适用于Android的使用的JVM

+2

坏主意。任何我见过的关于做这件事的事都说“不要”。它最好不可靠。除非这在Android中也有所改变。但这只是一个测试套件,对吧?没有在Android内部运行? –

+1

我正在定期使用这种方法,它工作得很好。 –

+1

修改该变量不推荐并为每[这个响应(http://stackoverflow.com/questions/1234795/why-is-the-user-dir-system-property-working-in-java/1234880#不可靠1234880)。它不适合我。 –

0

我会去了解一下运行robolectric在Maven构建中进行测试。这使得运行测试变得更容易。在Eclipse中也是如此。对Maven也可能有无限的支持。

+0

Infinitest的文档不指示对Maven的支持。我一直在玩sbt,并且成功地构建了我的Android应用程序,但还没有将它应用到我的正常开发中。我非常确定sbt支持某种构建后自动运行的测试类型,我认为这将取代无限。 –

+0

你知道,有一个SBT Android插件的权利.. –

+0

是的,这就是我做的构建。 –