You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用com.sun.security.auth.module.UnixSystem获取用户名并拼接路径?

解决方案

问题分析

你原代码的主要问题包括:

  • 变量定义位置错误(类外部不能直接定义变量)
  • 变量类型写错(type应为String)
  • Java不支持targetFilePath:这种命名参数调用方式
  • 缺少必要的类导入

修正后代码

import com.sun.security.auth.module.UnixSystem;

public class Main {
    public static String CodeKey = "RAWW";
    // 动态获取当前Unix用户名
    private static final String CURRENT_USER = new UnixSystem().getUsername();
    // 替换固定用户名,动态拼接basedir路径
    public static String basedir = "/Users/" + CURRENT_USER + "/Desktop/random/";

    public static void main(String[] args) {
        // FireUP();

        // 为targetFilePath补充当前用户名,按需求拼接路径
        String targetFilePath = "/Users/" + CURRENT_USER;
        Encrypt(targetFilePath);
    }

    // 补充Encrypt方法的定义(原代码缺失,否则编译报错)
    public static void Encrypt(String targetFilePath) {
        // 这里写你的加密逻辑
    }
}

关键修改说明

  • 导入必要类:必须导入com.sun.security.auth.module.UnixSystem才能使用它获取用户名
  • 动态获取用户名:将用户名定义为静态常量,方便在类的静态属性和方法中复用
  • 替换固定路径:用字符串拼接替换basedir中的固定用户名"fuzzer"
  • 修正方法调用:Java不支持命名参数,先拼接好完整的targetFilePath再传入Encrypt方法

注意事项

  • UnixSystem是Oracle JDK的内部API,在OpenJDK环境下可能需要添加编译参数--add-modules jdk.security.auth才能正常访问
  • 该类仅在Unix/Linux/macOS环境下可用,Windows系统运行会抛出异常

内容的提问来源于stack exchange,提问作者william

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:22:55