2016-08-22 88 views
1

正在运行的应用程序的名称,我认为标题解释probleme,事实上,如果我有一个主机和运行的应用程序,我们如何才能确定有与Java名称的端口掌握java的

public String getApplicationName(String host,int port) {//some code} 
+0

不清楚你在问什么。通常对于主机和端口来说,应答服务器可以处理许多不同的战争或耳朵(如果它是一个Java应用服务器)。这没有名字。 –

+2

@SheetalMohanSharma这个问题与当前执行方法的名称无关! –

回答

0

对不起,我在我的评论较早跃升至结论。我想从命令中获取进程列表可能很有用。再次操作系统特定...

try { 
    String line; 
    Process p = Runtime.getRuntime().exec("ps -e"); 
    BufferedReader input = 
      new BufferedReader(new InputStreamReader(p.getInputStream())); 
    while ((line = input.readLine()) != null) { 
     System.out.println(line); // 
//Run you pattern matcher here to parse data - host & port etc. 
    } 
    input.close(); 
} catch (Exception err) { 
    err.printStackTrace(); 
} 
0

主机和运行的应用程序

只有操作系统的端口是知道的,现在正在运行的应用程序。所以不可能获得关于避免编写OS specific逻辑的进程的信息。

E.g为Windows它看起来像:

Process proc = Runtime.getRuntime().exec ("tasklist.exe"); 
InputStream procOutput = proc.getInputStream(); 
if (0 == proc.waitFor()) { 
    // TODO scan the procOutput for your data 
} 
+0

应用程序在JVM中运行,是否有可能至少获得主类? – user3237201

+0

@ user3237201,'jvm'在由'OS'管理的进程中运行。 2个不同的应用程序运行2个不同的过不要紧,'jvm'或者没有进程被完全封装,直到你没有在同一个应用中讨论'Threads'。请参阅http://stackoverflow.com/questions/200469/what-is-the-difference-between-a-process-and-a-thread –