Deprecated.prefer setting options in the emulator options and calling {#start()}.
Starts the emulator. It is the caller's responsibility to call #stop. Note that
receiving an exception does not indicate that the server did not start. We recommend calling
#stop to ensure the server is not running regardless of the result of this method.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-18 UTC."],[],[],null,["# Class DatastoreEmulator (2.31.2)\n\nVersion latestkeyboard_arrow_down\n\n- [2.31.2 (latest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.31.1](/java/docs/reference/google-cloud-datastore/2.31.1/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.30.0](/java/docs/reference/google-cloud-datastore/2.30.0/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.29.1](/java/docs/reference/google-cloud-datastore/2.29.1/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.28.2](/java/docs/reference/google-cloud-datastore/2.28.2/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.27.1](/java/docs/reference/google-cloud-datastore/2.27.1/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.26.4](/java/docs/reference/google-cloud-datastore/2.26.4/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.25.2](/java/docs/reference/google-cloud-datastore/2.25.2/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.24.3](/java/docs/reference/google-cloud-datastore/2.24.3/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.23.0](/java/docs/reference/google-cloud-datastore/2.23.0/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.22.0](/java/docs/reference/google-cloud-datastore/2.22.0/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.21.3](/java/docs/reference/google-cloud-datastore/2.21.3/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.20.2](/java/docs/reference/google-cloud-datastore/2.20.2/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.19.2](/java/docs/reference/google-cloud-datastore/2.19.2/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.18.5](/java/docs/reference/google-cloud-datastore/2.18.5/com.google.datastore.v1.client.DatastoreEmulator)\n- [2.17.6](/java/docs/reference/google-cloud-datastore/2.17.6/com.google.datastore.v1.client.DatastoreEmulator) \n\n public class DatastoreEmulator extends Datastore\n\nAn extension to [Datastore](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore) that provides lifecycle management for a datastore emulator.\n\nIn order to use the emulator for a JUnit 4 test you might do something like this:\n\npublic class MyTest {\n\nstatic DatastoreEmulator datastore;\n\n@BeforeClass\npublic static void startEmulator() throws DatastoreEmulatorException {\nDatastoreOptions options = new DatastoreOptions.Builder()\n.localHost(\"localhost:8080\")\n.projectId(\"my-project-id\")\n.build();\ndatastore = DatastoreEmulatorFactory.get().create(options);\ndatastore.start(\"/usr/local/cloud-datastore-emulator\", \"my-project-id\");\n}\n\n@Before\npublic void setUp() throws DatastoreEmulatorException {\ndatastore.clear();\n}\n\n@AfterClass\npublic static void stopEmulator() throws DatastoreEmulatorException {\ndatastore.stop();\n}\n\n@Test\npublic void testFoo1() { }\n\n@Test\npublic void testFoo2() { }\n\n} \n\nInheritance\n-----------\n\n[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \\\u003e [Datastore](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore) \\\u003e DatastoreEmulator \n\nInherited Members\n-----------------\n\n[Datastore.allocateIds(AllocateIdsRequest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_allocateIds_com_google_datastore_v1_AllocateIdsRequest_) \n[Datastore.beginTransaction(BeginTransactionRequest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_beginTransaction_com_google_datastore_v1_BeginTransactionRequest_) \n[Datastore.commit(CommitRequest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_commit_com_google_datastore_v1_CommitRequest_) \n[Datastore.getRpcCount()](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_getRpcCount__) \n[Datastore.lookup(LookupRequest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_lookup_com_google_datastore_v1_LookupRequest_) \n[Datastore.reserveIds(ReserveIdsRequest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_reserveIds_com_google_datastore_v1_ReserveIdsRequest_) \n[Datastore.resetRpcCount()](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_resetRpcCount__) \n[Datastore.rollback(RollbackRequest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_rollback_com_google_datastore_v1_RollbackRequest_) \n[Datastore.runAggregationQuery(RunAggregationQueryRequest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_runAggregationQuery_com_google_datastore_v1_RunAggregationQueryRequest_) \n[Datastore.runQuery(RunQueryRequest)](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.Datastore#com_google_datastore_v1_client_Datastore_runQuery_com_google_datastore_v1_RunQueryRequest_) \n[Object.clone()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#clone--) \n[Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) \n[Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) \n[Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) \n[Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) \n[Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) \n[Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) \n[Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) \n[Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) \n[Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) \n[Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)\n\nMethods\n-------\n\n### clear()\n\n public void clear()\n\nClears all data in the emulator.\n\n### getProjectDirectory()\n\n public synchronized File getProjectDirectory()\n\n### start()\n\n public synchronized void start()\n\n### start(String emulatorDir, String projectId, String\\[\\] commandLineOptions) (deprecated)\n\n public synchronized void start(String emulatorDir, String projectId, String[] commandLineOptions)\n\n**Deprecated.** *prefer setting options in the emulator options and calling {#start()}.*\n\nStarts the emulator. It is the caller's responsibility to call [#stop](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.DatastoreEmulator#com_google_datastore_v1_client_DatastoreEmulator_stop_). Note that\nreceiving an exception does not indicate that the server did not start. We recommend calling\n[#stop](/java/docs/reference/google-cloud-datastore/latest/com.google.datastore.v1.client.DatastoreEmulator#com_google_datastore_v1_client_DatastoreEmulator_stop_) to ensure the server is not running regardless of the result of this method.\n\n### stop()\n\n public synchronized void stop()\n\nStops the emulator. Multiple calls are allowed.\n\n### stopEmulatorInternal()\n\n protected void stopEmulatorInternal()"]]