So, from a pure code point of view, there really is no significant difference.
The difference occurs after the distribution of the code begins.
Until you submit your code using annotations and JREs, you should be fine.
If you are distributing a JRE, then, as you already know, you need to run the Oracle Java Binary License .
You might want to refresh yourself with the terms of this license, in particular:
F. LIMITATIONS OF JAVA TECHNOLOGY. You may not create, modify or modify the behavior or allow your licensees to create, modify or modify the behavior of classes, interfaces or subpackages that are identified in any way as "java", "javax", sun "," oracle "or a similar agreement, as indicated by Oracle, in any legend designation.
So, if you distribute the JRE, and the same distribution includes a jar file that defines the classes in the javax , if the classes do not meet the specifications released and published by the JSR, you do not meet the Oracle Java binary license terms.
It is at this point that you should take a look at the official JSR 305 page.
At this point in time, JSR did not publish anything :

Thus, you will need to make sure that you are not distributing the jsr305.jar file next to the JRE in the Windows installer, OS-X installer, Docker image, etc.