import java.io.IOException ;
import java.nio.file.Paths ;
import java.net.URL ;
import java.net.URLClassLoader ;
public class Main {
if ( args.length == 0 ) {
new ProcessBuilder(
Paths.
get ( System .
getProperty ( "java.home" ) ,
"bin" ,
"java" ) .
toString ( ) ,
"-cp" ,
System .
getProperty ( "java.class.path" ) ,
"-Djava.system.class.loader=" + DynamicClassLoader.class .getName ( ) ,
Main.class .getName ( ) , "sub-process"
) .inheritIO ( ) .start ( ) .waitFor ( ) ;
return ;
}
System .
out .
println ( "Main.main()" ) ; System .
out .
println ( "ClassLoader.getSystemClassLoader(): " + ClassLoader .
getSystemClassLoader ( ) ) ; }
super ( urls, parent) ;
}
super ( name,
new URL [ 0 ] , parent
) ; }
this ( "classpath" , parent) ;
}
public void addURL
( URL url
) { super .addURL ( url) ;
}
}
}
CmltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwppbXBvcnQgamF2YS5uaW8uZmlsZS5QYXRoczsKaW1wb3J0IGphdmEubmV0LlVSTDsKaW1wb3J0IGphdmEubmV0LlVSTENsYXNzTG9hZGVyOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIElPRXhjZXB0aW9uLCBJbnRlcnJ1cHRlZEV4Y2VwdGlvbiB7CiAgICAgICAgaWYoYXJncy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICBuZXcgUHJvY2Vzc0J1aWxkZXIoCiAgICAgICAgICAgICAgICBQYXRocy5nZXQoU3lzdGVtLmdldFByb3BlcnR5KCJqYXZhLmhvbWUiKSwgImJpbiIsICJqYXZhIikudG9TdHJpbmcoKSwKICAgICAgICAgICAgICAgICItY3AiLCBTeXN0ZW0uZ2V0UHJvcGVydHkoImphdmEuY2xhc3MucGF0aCIpLAogICAgICAgICAgICAgICAgIi1EamF2YS5zeXN0ZW0uY2xhc3MubG9hZGVyPSIgKyBEeW5hbWljQ2xhc3NMb2FkZXIuY2xhc3MuZ2V0TmFtZSgpLAogICAgICAgICAgICAgICAgTWFpbi5jbGFzcy5nZXROYW1lKCksICJzdWItcHJvY2VzcyIKICAgICAgICAgICAgKS5pbmhlcml0SU8oKS5zdGFydCgpLndhaXRGb3IoKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkphdmE6ICIgKyBSdW50aW1lLnZlcnNpb24oKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNYWluLm1haW4oKSIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2xhc3NMb2FkZXIuZ2V0U3lzdGVtQ2xhc3NMb2FkZXIoKTogIiArIENsYXNzTG9hZGVyLmdldFN5c3RlbUNsYXNzTG9hZGVyKCkpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgZmluYWwgY2xhc3MgRHluYW1pY0NsYXNzTG9hZGVyIGV4dGVuZHMgVVJMQ2xhc3NMb2FkZXIgewogICAgICAgIHB1YmxpYyBEeW5hbWljQ2xhc3NMb2FkZXIoVVJMW10gdXJscywgQ2xhc3NMb2FkZXIgcGFyZW50KSB7CiAgICAgICAgICAgIHN1cGVyKHVybHMsIHBhcmVudCk7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgRHluYW1pY0NsYXNzTG9hZGVyKFN0cmluZyBuYW1lLCBDbGFzc0xvYWRlciBwYXJlbnQpIHsKICAgICAgICAgICAgc3VwZXIobmFtZSwgbmV3IFVSTFswXSwgcGFyZW50KTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBEeW5hbWljQ2xhc3NMb2FkZXIoQ2xhc3NMb2FkZXIgcGFyZW50KSB7CiAgICAgICAgICAgIHRoaXMoImNsYXNzcGF0aCIsIHBhcmVudCk7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgdm9pZCBhZGRVUkwoVVJMIHVybCkgewogICAgICAgICAgICBzdXBlci5hZGRVUkwodXJsKTsKICAgICAgICB9CiAgICB9Cn0=