2011-10-20 77 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

是的,這就是我做的構建。 –