How to use Jar Launcher with specified jdk version Now I have multiple jdk installed on OSX as shown below:

└─[1] &lt;&gt; /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
    14.0.1, x86_64: "Java SE 14.0.1"    /Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home
    1.8.0_241, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk-14.0.1.jdk/Contents/Home


Then I want to double click to run a jar file directly, for instance this:



However, it warns me that this jar file is launched with JDK 14 but I want to launch it with JDK 1.8. 
A solution is that run it in terminal with "java -jar" in specified jdk path,but clearly it is not elegant.
The best way is to let "Jar Launcher" use specified jdk version ,but I don't know how.
After long time efforts,I finally find the solution,that is ,to make your own Jar Launcher app:


Launch Automator to make Automator Quick Action


Select Application
Look for the Run Shell Script action with Filter Finder Items  and add it to 
the right.
paste scripts here like this below:


I make some changes to make it better


export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
cd "$(dirname "$@")" 
java -jar "$@" 



save this quick action as an app for example "open jar.app"
go to  /System/Library/CoreServices/Jar Launcher.app/Contents/Resources
and copy JarLauncher.icns

cd to "open jar.app" you just made and paste JarLauncher.icns to 
"open jar.app/Contents/Resources"
edit  "open jar.app/Contents/Info.plist" and change key(AutomatorApplet to JarLauncher.icns):


    &lt;key&gt;CFBundleIconFile&lt;/key&gt;
    &lt;string&gt;JarLauncher.icns&lt;/string&gt;





now you can choose to open with "open jar.app" just like before.