Create mr.jar file: 1. On the Windows Server 2003 R2 system running Java 1.8 131: - VersionDependent class that displays "Java 8 or earlier version!" C:\temp\mrtest\src\com\emc\demo\VersionDependent.java - Compile it from C:\temp\mrtest\src\com\emc\demo: "c:\Program Files\Java\jdk1.8.0_131\bin\javac.exe" -d C:\temp\mrtest\out-mr\java8 VersionDependent.java This creates: C:\temp\mrtest\out-mr\java8\com\emc\demo\VersionDependent.class 2. On the Windows 10 system running Java 10 ea: C:\Users\cardal>java -version java version "10-ea" 2018-03-20 Java(TM) SE Runtime Environment 18.3 (build 10-ea+38) Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10-ea+38, mixed mode) - VersionDependent class that displays “Java 10 version!" C:\Users\cardal\Temp\mrtest\src10\com\emc\demo\VersionDependent.java - Compile it from C:\Users\cardal\Temp\mrtest\src10\com\emc\demo: "C:\Program Files\Java\jdk-10\bin\javac" -d C:\users\cardal\temp\mrtest\out-mr\java10 VersionDependent.java This creates: C:\Users\cardal\Temp\mrtest\out-mr\java10\com\emc\demo\VersionDependent.class 3. Copy over Java 8 class from the Java 8 system: C:\temp\mrtest\out-mr\java8\com\emc\demo\VersionDependent.class to the Java 10 system: C:\Users\cardal\Temp\mrtest\out-mr\java8\com\emc\demo\VersionDependent.class 4. On the Windows 10 Java 10 system, create the multi-release JAR file from C:\Users\cardal\Temp\mrtest: "C:\Program Files\Java\jdk-10\bin\jar" --verbose --create --file out-mr\mr.jar -C out-mr\java8 . --release 10 -C out-mr\java10 . C:\Users\cardal\Temp\mrtest>"C:\Program Files\Java\jdk-10\bin\jar" --verbose --create --file out-mr\mr.jar -C out-mr\java8 . --release 10 -C out-mr\java10 . added manifest adding: com/(in = 0) (out= 0)(stored 0%) adding: com/emc/(in = 0) (out= 0)(stored 0%) adding: com/emc/demo/(in = 0) (out= 0)(stored 0%) adding: com/emc/demo/VersionDependent.class(in = 325) (out= 239)(deflated 26%) adding: META-INF/versions/10/(in = 0) (out= 0)(stored 0%) adding: META-INF/versions/10/com/(in = 0) (out= 0)(stored 0%) adding: META-INF/versions/10/com/emc/(in = 0) (out= 0)(stored 0%) adding: META-INF/versions/10/com/emc/demo/(in = 0) (out= 0)(stored 0%) adding: META-INF/versions/10/com/emc/demo/VersionDependent.class(in = 315) (out= 231)(deflated 26%) This creates: C:\Users\cardal\Temp\mrtest\out-mr\mr.jar on Java 10 system. ================== Use the new mr.jar to create the Applet test: 1. On the Windows Java 1.8 131 system: Copy the new mr.jar to C:\temp\project\lib 2. C:\Temp\project\appletExample\TestAppletLAC.java uses import com.emc.demo.VersionDependent; and displays VersionDependent.version. String test = new VersionDependent().version(); 3. Compile from C:\Temp\project\appletExample: "C:\Program Files\Java\jdk1.8.0_131\bin\javac.exe" TestAppletLAC.java -classpath ..\lib\mr.jar -> created C:\temp\project\appletExample\TestAppletLAC.class 4. From c:\temp\project>, create the JAR file: "C:\Program Files\Java\jdk1.8.0_131\bin\jar.exe" cvf testAppletLAC.jar appletExample\TestAppletLAC.class -> created C:\temp\project\testAppletLAC.jar 5. From C:\temp\project\starthtml: "C:\Program Files\Java\jdk1.8.0_131\bin\keytool.exe" -genkey -keystore lackey256.store -alias lacjws -sigalg SHA256withDSA Enter keystore password: I used sysadmin Re-enter new password: What is your first and last name? [Unknown]: Larry Cardani What is the name of your organizational unit? [Unknown]: IME What is the name of your organization? [Unknown]: EMC What is the name of your City or Locality? [Unknown]: Hopkinton What is the name of your State or Province? [Unknown]: MA What is the two-letter country code for this unit? [Unknown]: US Is CN=Larry Cardani, OU=IME, O=EMC, L=Hopkinton, ST=MA, C=US correct? [no]: yes Enter key password for (RETURN if same as keystore password): This creates C:\temp\project\starthtml\lackey256.store 6. Copy testAppletLAC.jar from project folder to starthtml folder. Copy mr.jar from lib folder to starthtml folder. 7. From the starthtml folder: "C:\Program Files\Java\jdk1.8.0_131\bin\jarsigner" -keystore lackey256.store testAppletLAC.jar lacjws Enter Passphrase for keystore: jar signed. Warning: The signer certificate will expire within six months. No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2018-01-21) or after any future revocation date. This updated testAppletLAC.jar 8. From the starthtml folder: "C:\Program Files\Java\jdk1.8.0_131\bin\jarsigner" -keystore lackey256.store mr.jar lacjws Enter Passphrase for keystore: jar signed. Warning: The signer certificate will expire within six months. No -tsa or -tsacert is provided and this jar is not timestamped. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2018-01-21) or after any future revocation date. This updated mr.jar ================== On the Windows 2003 Java 8 system: 1. testLAC.html: Uses mr.jar and testAppletLAC.jar. 2. Add file:///C:/temp/project/starthtml/testLAC.html to the Java exceptions list. (clear java and ie cache) 3. Internet Explorer 8: Browse to: file:///C:/temp/project/starthtml/testLAC.html Click on Allow blocked content. Click on I accept the risk and click on Run. -> Web page shows: Major version: 1.8.0_131 (the JRE on the Windows 2003 system) VersionDependent.version is not null. Output: Java 8 or earlier version This shows that the Multi-Release JAR file is running the proper class file version. ================== Test with files local: On the Windows 10 Java 10 system: 1. Copy the entire project folder to the Windows 10 system, running JRE Java 10. 2. Add exception file:///C:/users/cardal/Temp/project/starthtml/testLAC.html Clear java and ie caches 3. Internet Explorer 11: Browse to: file:///C:/users/cardal/temp/project/starthtml/testLAC.html Click on Allow blocked content. Click on I accept the risk and click on Run. -> Web page shows: Major version: 10-ea (the JRE on the Windows 10 system) VersionDependent.version is not null. Output: Java 8 or earlier version! This implies that the Multi-Release JAR file is probably STILL running the wrong class file version.