diff --git a/java/java.go b/java/java.go
index d867309..a9f3d1a 100644
--- a/java/java.go
+++ b/java/java.go
@@ -270,9 +270,6 @@
 type dependencyTag struct {
 	blueprint.BaseDependencyTag
 	name string
-
-	// True if the dependency is relinked at runtime.
-	runtimeLinked bool
 }
 
 // installDependencyTag is a dependency tag that is annotated to cause the installed files of the
@@ -283,15 +280,6 @@
 	name string
 }
 
-func (d dependencyTag) LicenseAnnotations() []android.LicenseAnnotation {
-	if d.runtimeLinked {
-		return []android.LicenseAnnotation{android.LicenseAnnotationSharedDependency}
-	}
-	return nil
-}
-
-var _ android.LicenseAnnotationsDependencyTag = dependencyTag{}
-
 type usesLibraryDependencyTag struct {
 	dependencyTag
 
@@ -308,13 +296,10 @@
 
 func makeUsesLibraryDependencyTag(sdkVersion int, optional bool, implicit bool) usesLibraryDependencyTag {
 	return usesLibraryDependencyTag{
-		dependencyTag: dependencyTag{
-			name:          fmt.Sprintf("uses-library-%d", sdkVersion),
-			runtimeLinked: true,
-		},
-		sdkVersion: sdkVersion,
-		optional:   optional,
-		implicit:   implicit,
+		dependencyTag: dependencyTag{name: fmt.Sprintf("uses-library-%d", sdkVersion)},
+		sdkVersion:    sdkVersion,
+		optional:      optional,
+		implicit:      implicit,
 	}
 }
 
@@ -325,22 +310,22 @@
 var (
 	dataNativeBinsTag       = dependencyTag{name: "dataNativeBins"}
 	staticLibTag            = dependencyTag{name: "staticlib"}
-	libTag                  = dependencyTag{name: "javalib", runtimeLinked: true}
-	java9LibTag             = dependencyTag{name: "java9lib", runtimeLinked: true}
+	libTag                  = dependencyTag{name: "javalib"}
+	java9LibTag             = dependencyTag{name: "java9lib"}
 	pluginTag               = dependencyTag{name: "plugin"}
 	errorpronePluginTag     = dependencyTag{name: "errorprone-plugin"}
 	exportedPluginTag       = dependencyTag{name: "exported-plugin"}
-	bootClasspathTag        = dependencyTag{name: "bootclasspath", runtimeLinked: true}
-	systemModulesTag        = dependencyTag{name: "system modules", runtimeLinked: true}
+	bootClasspathTag        = dependencyTag{name: "bootclasspath"}
+	systemModulesTag        = dependencyTag{name: "system modules"}
 	frameworkResTag         = dependencyTag{name: "framework-res"}
-	kotlinStdlibTag         = dependencyTag{name: "kotlin-stdlib", runtimeLinked: true}
-	kotlinAnnotationsTag    = dependencyTag{name: "kotlin-annotations", runtimeLinked: true}
+	kotlinStdlibTag         = dependencyTag{name: "kotlin-stdlib"}
+	kotlinAnnotationsTag    = dependencyTag{name: "kotlin-annotations"}
 	kotlinPluginTag         = dependencyTag{name: "kotlin-plugin"}
 	proguardRaiseTag        = dependencyTag{name: "proguard-raise"}
 	certificateTag          = dependencyTag{name: "certificate"}
 	instrumentationForTag   = dependencyTag{name: "instrumentation_for"}
 	extraLintCheckTag       = dependencyTag{name: "extra-lint-check"}
-	jniLibTag               = dependencyTag{name: "jnilib", runtimeLinked: true}
+	jniLibTag               = dependencyTag{name: "jnilib"}
 	syspropPublicStubDepTag = dependencyTag{name: "sysprop public stub"}
 	jniInstallTag           = installDependencyTag{name: "jni install"}
 	binaryInstallTag        = installDependencyTag{name: "binary install"}
