Direct main class

This commit is contained in:
dima_dencep 2023-07-02 12:39:52 +07:00
parent 74449c194c
commit ac4086856b
No known key found for this signature in database
GPG key ID: ED87FE0D1750A12D

View file

@ -43,33 +43,30 @@ public void invoke(String... args) throws Exception {
String jarName = this.wrapper.commandHandler.readLine();
Path jarPath = Paths.get(jarName);
String mainClassName;
String agentClassName;
try (JarFile file = new JarFile(jarPath.toFile())) {
LogHelper.info("Check server jar MainClass");
mainClassName = file.getManifest().getMainAttributes().getValue("Main-Class");
this.wrapper.config.mainclass = file.getManifest().getMainAttributes().getValue("Main-Class");
agentClassName = file.getManifest().getMainAttributes().getValue("Premain-Class");
if (mainClassName == null) {
if (this.wrapper.config.mainclass == null) {
LogHelper.error("Main-Class not found in MANIFEST");
return;
}
try {
Class.forName(mainClassName, false, new PublicURLClassLoader(new URL[] { jarPath.toUri().toURL() }));
Class.forName(this.wrapper.config.mainclass, false, new PublicURLClassLoader(new URL[] { jarPath.toUri().toURL() }));
} catch (ClassNotFoundException e) {
LogHelper.error(e);
return;
}
}
LogHelper.info("Found MainClass %s", mainClassName);
LogHelper.info("Found MainClass %s", this.wrapper.config.mainclass);
if (agentClassName != null)
LogHelper.info("Found PremainClass %s", agentClassName);
this.wrapper.config.mainclass = mainClassName;
for (int i = 0; i < 10; ++i) {
if(!Request.isAvailable() || Request.getRequestService().isClosed()) {
LogHelper.info("Print websocket address (ws://host:port/api):");