jps -l
работает как в Windows, так и в Unix. Вы можете вызвать эту команду из вашей Java-программы, используя Runtime.getRuntime().exec
. Пример вывода jps -l
выглядит следующим образом
9412 foo.bar.ClassName
9300 sun.tools.jps.Jps
Возможно, вам придется проанализировать это, а затем проверить полное имя и затем получить pid из соответствующей строки.
private static void executeJps() throws IOException {
Process p = Runtime.getRuntime().exec("jps -l");
String line = null;
BufferedReader in = new BufferedReader(new InputStreamReader(
p.getInputStream(), "UTF-8"));
while ((line = in.readLine()) != null) {
String [] javaProcess = line.split(" ");
if (javaProcess.length > 1 && javaProcess[1].endsWith("ClassName")) {
System.out.println("pid => " + javaProcess[0]);
System.out.println("Fully Qualified Class Name => " +
javaProcess[1]);
}
}
}