diff --git a/.gitignore b/.gitignore
index 4209dc0..b1598e6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,4 @@
 /.jiri
+/java/**/.gradle/
+/java/**/build/
+/java/local.properties
diff --git a/java/gradle/wrapper/gradle-wrapper.jar b/java/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..f1e5290
--- /dev/null
+++ b/java/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/java/gradle/wrapper/gradle-wrapper.properties b/java/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..d1fc459
--- /dev/null
+++ b/java/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Tue Mar 08 09:50:35 PST 2016
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.11-bin.zip
diff --git a/java/gradlew b/java/gradlew
new file mode 100755
index 0000000..9d82f78
--- /dev/null
+++ b/java/gradlew
@@ -0,0 +1,160 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+    echo "$*"
+}
+
+die ( ) {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+esac
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+    JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/java/mojo/application/build.gradle b/java/mojo/application/build.gradle
new file mode 100644
index 0000000..045e8c3
--- /dev/null
+++ b/java/mojo/application/build.gradle
@@ -0,0 +1,22 @@
+apply plugin: 'java'
+
+// TODO(jhahn): Use compileOnly once we upgrade gradle to 2.12.
+configurations {
+    provided
+}
+
+sourceSets {
+    main {
+        java {
+            srcDir System.getenv('MOJO_SDK') + '/src/mojo/public/java/application/src'
+        }
+
+        compileClasspath += configurations.provided
+    }
+}
+
+dependencies {
+    provided project(':mojo:system')
+    provided project(':mojo:bindings')
+    provided project(':mojo:interfaces:application')
+}
diff --git a/java/mojo/bindings/build.gradle b/java/mojo/bindings/build.gradle
new file mode 100644
index 0000000..7440fc8
--- /dev/null
+++ b/java/mojo/bindings/build.gradle
@@ -0,0 +1,28 @@
+apply plugin: 'java'
+
+// TODO(jhahn): Use compileOnly once we upgrade gradle to 2.12.
+configurations {
+    provided
+}
+
+sourceSets {
+    main {
+        java {
+            srcDir System.getenv('MOJO_SDK') + '/src/mojo/public/java/bindings/src'
+            srcDir "$buildDir/src"
+        }
+
+        compileClasspath += configurations.provided
+  }
+}
+
+fileTree(dir: System.getenv('MOJO_SDK') + '/gen/mojo/public/interfaces/bindings', include: '*.mojom.srcjar').each {File file ->
+    copy {
+        from zipTree(file)
+        into "$buildDir/src"
+    }
+}
+
+dependencies {
+    provided project(':mojo:system')
+}
diff --git a/java/mojo/interfaces/application/build.gradle b/java/mojo/interfaces/application/build.gradle
new file mode 100644
index 0000000..8d409a1
--- /dev/null
+++ b/java/mojo/interfaces/application/build.gradle
@@ -0,0 +1,28 @@
+apply plugin: 'java'
+
+// TODO(jhahn): Use compileOnly once we upgrade gradle to 2.12.
+configurations {
+    provided
+}
+
+sourceSets {
+    main {
+        java {
+            srcDir "$buildDir/src"
+        }
+
+        compileClasspath += configurations.provided
+  }
+}
+
+fileTree(dir: System.getenv('MOJO_SDK') + '/gen/mojo/public/interfaces/application', include: '*.mojom.srcjar').each {File file ->
+    copy {
+        from zipTree(file)
+        into "$buildDir/src"
+    }
+}
+
+dependencies {
+    provided project(':mojo:system')
+    provided project(':mojo:bindings')
+}
diff --git a/java/mojo/interfaces/network/build.gradle b/java/mojo/interfaces/network/build.gradle
new file mode 100644
index 0000000..fb5e5fb
--- /dev/null
+++ b/java/mojo/interfaces/network/build.gradle
@@ -0,0 +1,28 @@
+apply plugin: 'java'
+
+// TODO(jhahn): Use compileOnly once we upgrade gradle to 2.12.
+configurations {
+    provided
+}
+
+sourceSets {
+    main {
+        java {
+            srcDir "$buildDir/src"
+        }
+
+        compileClasspath += configurations.provided
+  }
+}
+
+fileTree(dir: System.getenv('MOJO_SDK') + '/gen/mojo/public/interfaces/network', include: '*.mojom.srcjar').each {File file ->
+    copy {
+        from zipTree(file)
+        into "$buildDir/src"
+    }
+}
+
+dependencies {
+    provided project(':mojo:system')
+    provided project(':mojo:bindings')
+}
diff --git a/java/mojo/system/build.gradle b/java/mojo/system/build.gradle
new file mode 100644
index 0000000..f792b6b
--- /dev/null
+++ b/java/mojo/system/build.gradle
@@ -0,0 +1,9 @@
+apply plugin: 'java'
+
+sourceSets {
+    main {
+        java {
+            srcDir System.getenv('MOJO_SDK') + '/src/mojo/public/java/system/src'
+        }
+    }
+}
diff --git a/java/settings.gradle b/java/settings.gradle
new file mode 100644
index 0000000..a04954c
--- /dev/null
+++ b/java/settings.gradle
@@ -0,0 +1 @@
+include 'mojo:system', 'mojo:bindings', 'mojo:application', 'mojo:interfaces:application', 'mojo:interfaces:network'
diff --git a/mojo.mk b/mojo.mk
index efcbd81..1d8f615 100644
--- a/mojo.mk
+++ b/mojo.mk
@@ -89,7 +89,7 @@
 # Runs mojo app tests.
 # $1 is apptest list filename.
 define MOJO_APPTEST
-	$(MOJO_DEVTOOLS)/mojo_test --config-file $(CURDIR)/mojoconfig --shell-path $(MOJO_SHELL) $(MOJO_SHELL_FLAGS) $(MOJO_ANDROID_FLAGS) $1
+	$(MOJO_DEVTOOLS)/mojo_test --config-file $(CURDIR)/mojoconfig --shell-path $(MOJO_SHELL) $(MOJO_SHELL_FLAGS) --disable-cache $(MOJO_ANDROID_FLAGS) $1
 endef
 
 .PHONY: mojo-env-check
