z=y=z 2024-11-09 18:58 采纳率: 22.2%
浏览 5
已结题

Java获取访问用户操作系统进程

将jar打包发布到linux服务器上,在jar包里面如何获取访问用户当前的操作系统进程

  • 写回答

1条回答 默认 最新

  • 无疆76 2024-11-09 18:59
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在Java中,获取当前运行环境的操作系统信息是可以做到的,但获取特定用户的操作系统进程信息是不可行的,因为Java运行时环境并没有提供这种能力。对于操作系统级别的访问和操作,Java提供了一种标准的接口来检测操作系统的信息。下面是一个基本的示例:

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    import java.net.NetworkInterface;
    import java.util.Collections;
    import java.util.List;
    import java.util.Map;
    import java.util.stream.Collectors;
    import java.util.stream.Stream;
    import org.osjavaapi.shellstuff.*; // 这需要一个外部库来获取当前运行进程的列表信息
    
    public class SystemInfo {
        public static void main(String[] args) {
            SystemOperatingSystemInfo osInfo = new SystemOperatingSystemInfo(); // 使用外部库获取操作系统信息
            SystemUtils systemUtils = new SystemUtils(); // 获取系统相关信息,如用户名等
            String osName = osInfo.getOsName(); // 获取操作系统名称
            String osVersion = osInfo.getOsVersion(); // 获取操作系统版本
            String user = systemUtils.getCurrentUser(); // 获取当前系统用户名字等信息。这依赖于具体系统API的提供。可能还需要额外处理不同操作系统的兼容性。在某些情况下,可能无法实现该功能或获取特定进程的信息可能非常困难。一般都需要操作系统的直接权限访问功能等来实现这个功能,并不简单在Java中实现。另外,出于安全和隐私考虑,通常不建议在没有用户明确同意的情况下获取此类信息。如果你确实需要获取特定进程的信息,可能需要使用特定的系统命令或API来获取这些信息,这通常涉及到系统编程和权限管理,并且可能涉及到特定的操作系统API和工具的使用。这可能涉及到JNI(Java Native Interface)或JNA(Java Native Access)等更复杂的技术,并不在常规Java的编程范畴内。在一些场景下可能需要访问本地操作系统服务的代码可能需要本地化的实现代码来兼容不同的操作系统和平台环境。
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月29日
  • 创建了问题 11月9日