首页 > 编程语言 >java-结束端口对应的process

java-结束端口对应的process

时间:2023-08-25 18:16:09浏览次数:42  
标签:java String process pid contains 端口 os

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ProcessKiller {
    public static void main(String[] args) {
        int port = 8080; // 要释放的端口号

        try {
            // 构造命令
            String command = "";
            String os = System.getProperty("os.name").toLowerCase(); // 获取操作系统名称

            if (os.contains("win")) {
                // Windows平台
                command = "cmd /c netstat -ano | findstr :" + port;
            } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) {
                // Linux或Mac平台
                command = "lsof -i :" + port;
            } else {
                System.out.println("不支持的操作系统");
                return;
            }

            // 执行命令
            Process process = Runtime.getRuntime().exec(command);

            // 读取命令输出
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                // 获取进程ID
                String[] parts = line.trim().split("\\s+"); // 将行按空格切分
                String pid = parts[parts.length - 1];

                // 终止进程
                if (os.contains("win")) {
                    Runtime.getRuntime().exec("cmd /c taskkill /F /PID " + pid);
                } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) {
                    Runtime.getRuntime().exec("kill -9 " + pid);
                }

                System.out.println("已终止进程: " + pid);
            }

            // 关闭读取器
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

标签:java,String,process,pid,contains,端口,os
From: https://www.cnblogs.com/note2023/p/17657641.html

相关文章

  • Java的三大结构
    三大结构顺序结构依次按照顺序输入和输出选择结果if选择结构单选择结构双选择结构多选择结构 注意事项if语句中只能有1个else语句else语句在elseif语句之后,if语法在elseif语法之前一旦有一个elseif语句检测为true,其他的语句则将跳过,程序结束嵌套结......
  • 致远互联Java面经
    自我介绍说说项目LinkedList的底层Hashtable和HashMapConcurrentHashMap如果一个页面很卡要怎么排错如果数据库很慢要怎么优化MySQL的存储引擎有哪些事务的四大特性springmvc工作流程知道吗设计模式shell脚本,linux命令不用锁怎么保证原子性讲讲悲观锁和乐观锁有哪些......
  • 使用Java Xpath 爬取某易云歌曲
    本文使用Javaxpath爬取某易云歌曲,并下载至本地。代码仅用于个人学习使用,欢迎各位大佬提出建议。1、添加依赖<dependency><groupId>cn.wanghaomiao</groupId><artifactId>JsoupXpath</artifactId><version>2.2</version>......
  • Java maven 工程报错:cannot be read or is not a valid ZIP file
    原因:这个报错,其实jar包是个异常的jar。我是通过maven下载的后缀.lastupdate,然后我就直接把.lastupdate改成了.jar。但是其实这个并不是实际意义上的jar包。解决办法:找到匹配的jar包替换掉这个无效的jar包就可以了......
  • JavaScript 去重-对象数组中的重复对象
    先showCodeArray.from(newSet(myArray.map(JSON.stringify)),JSON.parse)myArray是一个对象数组,它是源数据。map(JSON.stringify) 的作用是将每个对象转换为JSON字符串。JSON.stringify 方法将JavaScript对象转换为JSON字符串表示。newSet(...) 创建一个新的S......
  • [Java SE] Java执行命令行
    1序言实现自动化程序、跨环境调用的重要途径2源码示例packagetest.java;importorg.junit.Test;importjava.io.BufferedReader;importjava.io.File;importjava.io.IOException;importjava.io.InputStreamReader;importjava.nio.charset.StandardCharsets;im......
  • 利用Java实现文本到语音转换(TTS)的实用指南
    在现代技术发展的背景下,文本到语音转换(TTS)成为了一种非常有用的技术。TTS技术可以将文字转换成自然流畅的语音,提供更加人性化和便利的交互方式。本文将介绍如何使用Java来实现TTS功能,让我们一起来探索吧!引言文本到语音转换(TTS)是一种使计算机能够将文字转换成可听的语音的技术。它......
  • [javase高级] HashMap实现原理
    HashMap是数组+链表实现的,既然用到hash散列,那么肯定不可避免的会出现冲突问题,HashMap解决冲突的方法是拉链法,因为这里有用到数组,那么当容量不足的时候就需要进行扩容操作了,在HashMap中有个术语叫冲突,当冲突几率越来越高的时候就需要进行扩容操作了那什么情况就叫冲突几率高呢?就是......
  • 【算法记录】Java - Base64编码解码源码
    Base64编码表索引对应字符索引对应字符索引对应字符索引对应字符0A17R34i51z1B18S35j5202C19T36k5313D20U37l5424E21V38m5535F22W39n5646G23X40o5757H24Y41p5868I25Z42q5......
  • 在线直播系统源码,java使用Thumbnailator实现图片压缩
    在线直播系统源码,java使用Thumbnailator实现图片压缩1.添加jar包 <!--Thumbnailator图片压缩--><dependency>  <groupId>net.coobird</groupId>  <artifactId>thumbnailator</artifactId>  <version>0.4.8</version></dependency>......