diff --git a/test/java/org/apache/ivy/ant/IvyCachePathTest.java b/test/java/org/apache/ivy/ant/IvyCachePathTest.java
index 5795df9..d44cc0a 100644
--- a/test/java/org/apache/ivy/ant/IvyCachePathTest.java
+++ b/test/java/org/apache/ivy/ant/IvyCachePathTest.java
@@ -23,9 +23,11 @@
 
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Project;
+import org.apache.tools.ant.taskdefs.condition.JavaVersion;
 import org.apache.tools.ant.types.Path;
 
 import org.junit.After;
+import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -290,6 +292,10 @@
 
     @Test
     public void testPackedOSGi() {
+        final JavaVersion java14OrHigher = new JavaVersion();
+        java14OrHigher.setAtLeast("14");
+        Assume.assumeFalse("Pack200 tools and API have been removed since JDK 14", java14OrHigher.eval());
+
         project.setProperty("ivy.dep.file",
             "test/repositories/1/packaging/module8/ivys/ivy-1.0.xml");
         path.setPathid("testOSGi");
diff --git a/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java b/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java
index ec91ffc..e3157f1 100644
--- a/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java
+++ b/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java
@@ -37,7 +37,9 @@
 import org.apache.ivy.util.MockMessageLogger;
 import org.apache.tools.ant.Project;
 import org.apache.tools.ant.taskdefs.Delete;
+import org.apache.tools.ant.taskdefs.condition.JavaVersion;
 import org.junit.After;
+import org.junit.Assume;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -449,6 +451,10 @@
      */
     @Test
     public void testUnpackExt() throws Exception {
+        final JavaVersion java14OrHigher = new JavaVersion();
+        java14OrHigher.setAtLeast("14");
+        Assume.assumeFalse("Pack200 tools and API have been removed since JDK 14", java14OrHigher.eval());
+
         final ResolveOptions roptions = getResolveOptions(new String[] {"*"});
 
         final URL url = new File("test/repositories/1/packaging/module10/ivys/ivy-1.0.xml").toURI()
diff --git a/test/java/org/apache/ivy/osgi/p2/P2DescriptorTest.java b/test/java/org/apache/ivy/osgi/p2/P2DescriptorTest.java
index 3ff5993..4571790 100644
--- a/test/java/org/apache/ivy/osgi/p2/P2DescriptorTest.java
+++ b/test/java/org/apache/ivy/osgi/p2/P2DescriptorTest.java
@@ -34,7 +34,9 @@
 import org.apache.ivy.core.settings.IvySettings;
 import org.apache.ivy.osgi.core.BundleInfo;
 import org.apache.ivy.osgi.updatesite.UpdateSiteResolver;
+import org.apache.tools.ant.taskdefs.condition.JavaVersion;
 import org.junit.After;
+import org.junit.Assume;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -215,6 +217,10 @@
 
     @Test
     public void testResolvePacked() throws Exception {
+        final JavaVersion java14OrHigher = new JavaVersion();
+        java14OrHigher.setAtLeast("14");
+        Assume.assumeFalse("Pack200 tools and API have been removed since JDK 14", java14OrHigher.eval());
+
         settings.setDefaultResolver("p2-with-packed");
 
         ModuleRevisionId mrid = ModuleRevisionId.newInstance(BundleInfo.BUNDLE_TYPE, "org.junit",
