diff --git a/onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaLocationUtils.java b/onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaLocationUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..033928a21e29e702335c42360146b5d968ac6dab
--- /dev/null
+++ b/onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaLocationUtils.java
@@ -0,0 +1,26 @@
+package org.briarproject.onionwrapper;
+
+import org.briarproject.nullsafety.NotNullByDefault;
+
+import java.util.Locale;
+import java.util.logging.Logger;
+
+import javax.inject.Inject;
+
+@NotNullByDefault
+class JavaLocationUtils implements LocationUtils {
+
+    private static final Logger LOG =
+            Logger.getLogger(JavaLocationUtils.class.getName());
+
+    @Inject
+    JavaLocationUtils() {
+    }
+
+    @Override
+    public String getCurrentCountry() {
+        LOG.info("Using user-defined locale");
+        return Locale.getDefault().getCountry();
+    }
+
+}
diff --git a/onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaLocationUtilsFactory.java b/onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaLocationUtilsFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..3529326e0ab5d8482ddf5756ae26e0eba2d2c99d
--- /dev/null
+++ b/onionwrapper-java/src/main/java/org/briarproject/onionwrapper/JavaLocationUtilsFactory.java
@@ -0,0 +1,9 @@
+package org.briarproject.onionwrapper;
+
+public class JavaLocationUtilsFactory {
+
+    public static JavaLocationUtils createJavaLocationUtils() {
+        return new JavaLocationUtils();
+    }
+
+}