如何關閉java類,如何關閉java進程

本文目錄一覽:

java中,如何終止其它類的運行,但主類依然在運行,如何實現?

調用需要關閉界面的dispose()方法 就可以釋放資源 該方法會摧毀界面

還有一種:

如果後面還需要調用該界面的話,則調用setVisible(false)讓他在後台運行 需要顯示則false改為true即可

JAVA中怎麼關閉一個窗口

java關閉窗口可以使用dispose(),只是該窗體在內存中所佔有的資源得到了釋放,而整個程序並沒有因此而退出,如果整個程序要退出,在以java.awt中的frame為控制項時,需手動添加:System.exit();

而在以javax.Swing中的jFrame為控制項時,一般不需要再寫相應的事件,默認點擊窗體上的小叉時,是隱藏,當然你可更改其參數。

如何關閉java線程

終止線程的三種方法

1. 使用退出標誌,使線程正常退出,也就是當run方法完成後線程終止。

2. 使用stop方法強行終止線程(這個方法不推薦使用,因為stop和suspend、resume一樣,也可能發生不可預料的結果)。

3. 使用interrupt方法中斷線程。

1. 使用退出標誌終止線程

當run方法執行完後,線程就會退出。但有時run方法是永遠不會結束的。如在服務端程序中使用線程進行監聽客戶端請求,或是其他的需要循環處理的任務。在這種情況下,一般是將這些任務放在一個循環中,如while循環。如果想讓循環永遠運行下去,可以使用while(true){……}來處理。但要想使while循環在某一特定條件下退出,最直接的方法就是設一個boolean類型的標誌,並通過設置這個標誌為true或false來控制while循環是否退出。下面給出了一個利用退出標誌終止線程的例子。

package chapter2;

public class ThreadFlag extends Thread

{

public volatile boolean exit = false;

public void run()

{

while (!exit);

}

public static void main(String[] args) throws Exception

{

ThreadFlag thread = new ThreadFlag();

thread.start();

sleep(5000); // 主線程延遲5秒

thread.exit = true; // 終止線程thread

thread.join();

System.out.println(“線程退出!”);

}

}

在上面代碼中定義了一個退出標誌exit,當exit為true時,while循環退出,exit的默認值為false.在定義exit時,使用了一個Java關鍵字volatile,這個關鍵字的目的是使exit同步,也就是說在同一時刻只能由一個線程來修改exit的值,

2. 使用stop方法終止線程

使用stop方法可以強行終止正在運行或掛起的線程。我們可以使用如下的代碼來終止線程:

thread.stop();

雖然使用上面的代碼可以終止線程,但使用stop方法是很危險的,就象突然關閉計算機電源,而不是按正常程序關機一樣,可能會產生不可預料的結果,因此,並不推薦使用stop方法來終止線程。

3. 使用interrupt方法終止線程

使用interrupt方法來終端線程可分為兩種情況:

(1)線程處於阻塞狀態,如使用了sleep方法。

(2)使用while(!isInterrupted()){……}來判斷線程是否被中斷。

在第一種情況下使用interrupt方法,sleep方法將拋出一個InterruptedException例外,而在第二種情況下線程將直接退出。下面的代碼演示了在第一種情況下使用interrupt方法。

package chapter2;

public class ThreadInterrupt extends Thread

{

public void run()

{

try

{

sleep(50000); // 延遲50秒

}

catch (InterruptedException e)

{

System.out.println(e.getMessage());

}

}

public static void main(String[] args) throws Exception

{

Thread thread = new ThreadInterrupt();

thread.start();

System.out.println(“在50秒之內按任意鍵中斷線程!”);

System.in.read();

thread.interrupt();

thread.join();

System.out.println(“線程已經退出!”);

}

}

上面代碼的運行結果如下:

在50秒之內按任意鍵中斷線程!

sleep interrupted

線程已經退出!

在調用interrupt方法後, sleep方法拋出異常,然後輸出錯誤信息:sleep interrupted.

注意:在Thread類中有兩個方法可以判斷線程是否通過interrupt方法被終止。一個是靜態的方法interrupted(),一個是非靜態的方法isInterrupted(),這兩個方法的區別是interrupted用來判斷當前線是否被中斷,而isInterrupted可以用來判斷其他線程是否被中斷。因此,while (!isInterrupted())也可以換成while (!Thread.interrupted())。

如何關閉/usr/bin/java

卸載過程包括以下步驟:

Java 插件卸載

Java 卸載

RPM 卸載

自解壓卸載

Java 插件卸載:Mozilla 瀏覽器

如果準備重新安裝 Java,則不必卸載 Java 插件。創建新的符號鏈接時,只需使用 ln 命令的 -f 選項。

示例: ln -f /usr/lib/mozilla/plugins/libnpjp2.so

如果準備從 Linux 盒中完全刪除 Java,請參閱下面介紹的符號鏈接刪除過程。

打開終端窗口

以超級用戶身份登錄

鍵入: rm /usr/lib/mozilla/plugins/libnpjp2.so

將提示刪除符號鏈接:

rm: /usr/lib/mozilla/plugins/libnpjp2.so ?

鍵入:Y

Java 卸載

有兩種方法卸載 Java。請使用在安裝 Java 時所用的方法。

例如,如果以前使用 RPM 安裝 Java,則使用 RPM 卸載方法。

RPM 卸載

註:如果 Linux 盒中具有 RPM,則應首先確定 Java 是否是使用 RPM 安裝的。如果 Java 不是使用 RPM 安裝的,則請跳過本節內容。

打開終端窗口

以超級用戶身份登錄

鍵入以下命令,嘗試查找 JRE 包: rpm -qa

如果 RPM 報告一個類似於 jre-version-fcs 的包,則說明 Java 是使用 RPM 安裝的。

註:通常,不必使用 RPM 卸載 Java,因為 RPM 可以在安裝新版本時自動卸載舊版本的 Java!除非準備永久刪除 Java,否則請跳過本節內容。

要卸載 Java,請鍵入: rpm -e jre-version-fcs

自解壓文件卸載

確定 Java 是否安裝在某些文件夾中。常用位置包括 /usr/java/jre_version 或/opt/jre_nb/jre_version/bin/java/

如果找到了安裝 Java 的文件夾,可以刪除此文件夾。

警告:刪除文件夾之前,應確保 Java 以前不是使用 RPM 安裝的。

鍵入: rm -r jreversion

例如: rm -r jre1.7.0

如何關閉java程序

我詳細說一下吧

java程序啟動之後,JVM(java虛擬機)會實例化一個Runtime類,這是一個運行時類實例,包含這個java程序運行的所有信息,一個程序會實例化一個Runtime類且只能實例化一個Runtime類。我們可以通過這個Runtime類實例操作程序的運行。它的exit(int status)方法會終止程序的運行。例:

Runtime.getRuntime().exit(0);

其中參數status表示狀態,0表示正常退出,非0表示異常退出。非0參數有什麼用呢?

addShutdownHook(Thread hook)方法可以將一個Thread可程序的關閉hook(掛/聯繫)起來,程序退出前,會執行這個方法,這樣我們可以根據退出狀態作相應的善後操作。

另外,System.exit(int status)也是調用這個Runtime類實例的退出方法來間接實現程序的退出的。

再加一點,Runtime類可以創建子進程,如下:

Process p=Runtime.getRuntime().exec(“notepad”);

這個語句將會創建一個記事本程序(它是Runtime類創建的子進程)

p.destroy();

這個語句終止剛才創建的子進程。

如何關閉java類

在b類中創建close方法,完成需要關閉的所有操作,在a中調用b.close();

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/309904.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-04 19:31
下一篇 2025-01-04 19:31

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論