[java] makes AppMain compatible with Java <= 5 (IDEA-170021)

This commit is contained in:
Roman Shevchenko
2017-03-22 14:13:22 +01:00
parent a1db8313c1
commit 0a3dd3579a
2 changed files with 17 additions and 14 deletions
+1 -1
View File
@@ -1 +1 @@
Premain-Class: com.intellij.rt.execution.application.AppMainV2
Premain-Class: com.intellij.rt.execution.application.AppMainV2$Agent
@@ -18,6 +18,7 @@ package com.intellij.rt.execution.application;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.lang.instrument.Instrumentation;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
@@ -89,19 +90,6 @@ public class AppMainV2 {
t.start();
}
public static void premain(String args) {
try {
int p = args.indexOf(':');
if (p < 0) throw new IllegalArgumentException("incorrect parameter: " + args);
boolean helperLibLoaded = loadHelper(args.substring(p + 1));
int portNumber = Integer.parseInt(args.substring(0, p));
startMonitor(portNumber, helperLibLoaded);
}
catch (Throwable t) {
System.err.println("Launcher failed - \"Dump Threads\" and \"Exit\" actions are unavailable (" + t.getMessage() + ')');
}
}
public static void main(String[] args) throws Throwable {
try {
boolean helperLibLoaded = loadHelper(System.getProperty(LAUNCHER_BIN_PATH));
@@ -159,4 +147,19 @@ public class AppMainV2 {
return false;
}
}
public static class Agent {
public static void premain(String args, Instrumentation i) {
try {
int p = args.indexOf(':');
if (p < 0) throw new IllegalArgumentException("incorrect parameter: " + args);
boolean helperLibLoaded = loadHelper(args.substring(p + 1));
int portNumber = Integer.parseInt(args.substring(0, p));
startMonitor(portNumber, helperLibLoaded);
}
catch (Throwable t) {
System.err.println("Launcher failed - \"Dump Threads\" and \"Exit\" actions are unavailable (" + t.getMessage() + ')');
}
}
}
}