簡體   English   中英

Java進程仍在運行

[英]Java process still running

我在shell腳本中使用一種方法來執行jar文件。

function executeJar(){
 java -cp $BASE_PATH"myjar.jar":$CLASSPATH/* com.sample.main.App config.json
}

即使jar完成執行后,java進程仍處於活動狀態並且不會被殺死。 我應該手動殺死它嗎? 有什么解決方案。

  1. 檢查是否還有任何資源(數據庫連接,輸入讀取器,套接字等)打開。 請確保.close()這些資源或使用try-with-resources語句(它們會為您關閉)

  2. 如果您使用的是線程,也許仍然有一些線程在運行。 或者您使用的某些東西已經占用了線程(例如數據庫連接池)。 使用Visual VM工具(每個JDK附帶它,只需在控制台上鍵入jvisualvm)。 打開Visual VM,運行您的應用程序並確保它不會自動退出,在Visual VM的左側面板上選擇您的應用程序運行時,然后監視Visual VM上的“ 線程”選項卡 關閉您的應用程序,然后檢查是否還有任何內容在運行。 https://docs.oracle.com/javase/7/docs/technotes/guides/visualvm/threads.html

  3. 如果您在Windows中運行,則可能只有父進程(控制台)仍在運行。 嘗試使用javaw代替java java / javaw / javaws之間的區別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM