package Ġfast . ssh . command Ċ Ċ import Ġfast . ssh . Console Session Ċ import Ġfast . ssh . I Console Process Ċ import Ġfast . ssh . plain Cmd Ċ import Ġfast . ssh . process . Console Ċ import Ġfast . ssh . try Find Ċ Ċ class ĠJava Version Command ( override Ġval Ġprocess : ĠI Console Process ) Ġ: ĠConsole Command < Java Version >( process ) Ġ{ ĊĠ Ġinit Ġ{ ĊĠĠĠ Ġprint To Output Ġ= Ġfalse ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġfun Ġjava Version ( session : ĠConsole Session ): ĠJava Version Command Ġ= ĊĠĠĠĠĠ ĠJava Version Command ( session . plain Cmd (" java Ġ- version ")) ĊĠ Ġ} ĊĊĊĠ Ġoverride Ġfun Ġparse Console ( console : ĠConsole ): ĠCommand Result < Java Version > Ġ= ĊĠĠĠ ĠCommand Result < Java Version >( console ). with Value ({ Ġparse Java Version ( console . stdout . toString ()) Ġ}) ĊĊĠ Ġinternal Ġfun Ġparse Java Version ( s : ĠString ): ĠJava Version Ġ{ ĊĠĠĠ Ġval ĠisOpen JDK Ġ= Ġs . contains (" openjdk ") ĊĊĠĠĠ Ġval Ġg Ġ= Ġ" version \\ s \" 1 .( \\ d + ). \\ d + _( \\ d +)\ "" . to Regex (). try Find ( s ) ĊĊĠĠĠ Ġval Ġversion Ġ= Ġif Ġ( g Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠ ĠlistOf ( g [ 1 ], Ġg [ 2 ]) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġval Ġmajor Ġ= Ġ" version Ġ\" (\\ d +) ". to Regex (). try Find ( s )! ![ 1 ] ĊĠĠĠĠĠ Ġval Ġbuild Ġ= Ġ" build Ġ( \\ d +) ". to Regex (). try Find ( s )! ![ 1 ] ĊĠĠĠĠĠ ĠlistOf ( major , Ġbuild ) ĊĠĠĠ Ġ}. map Ġ{ Ġit . toInt () Ġ} ĊĊĠĠĠ Ġreturn ĠJava Version ( isOpen JDK , ĠSimple Version ( version Ġas ĠList < Comparable < Any >> )) ĊĠ Ġ} Ċ Ċ }