Root is the hosting site.. The params argument is the page hosted at that site that contains the information for loading the applet.
Self.__Target := SmartSpawnClient('C:/Program Files (x86)/Java/jre1.8.0_25/bin/java.exe', Replace(PluginPath, '\', '/', [rfReplaceAll]), 'file:///C:/Users/Kira/Desktop/', 'AppletTest.html', Width, Height, InitSequence, '', '-XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=30', Implode(',', Plugins));
My desktop in this case is the host and the AppletTest.html is the page that contains:
<html>
<head>
<title>Test Applet</title>
<style>
body {background-color:lightgrey}
</style>
</head>
<body>
<div>
<applet code="applettest.MyApplet.class" codebase="applet_code_base" archive="AppletTest.jar" width="500" height="500">
Please Install Java.
</applet>
</div>
</body>
</html>
Aka information to load the requested applet. In this case, SMART will send a socket request to 127.0.0.1 for the above file.
https://github.com/BenLand100/SMART/blob/master/src/Client.java#L651You can see it does:
downloadHTML(root + params); after that it does:
archive = root + archive;So it's just easier for it rather than finding the host and the page and separating them just to get the root to affix it to the beginning of the archive (jar).