2016-08-22 163 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 –