Deepin下安装Oracle Java出现Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=gasp问题解决方案

本文介绍在Deepin系统中安装Oracle Java遇到Pickedup_JAVA_OPTIONS问题及其解决办法。主要步骤包括复制OpenJDK设置到JDK的JRE目录、备份并删除干扰文件等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Deepin下安装Oracle Java出现Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=gasp问题解决方案

本文参考了答案百度知道,请尊重原创。

解决方案:

通过搜索,特别是参考:“http://linux-wiki.cn/wiki/zh-hans/Java程序中文字体配置”的文章后,找到了答案。如果是不同的操作系统,参照解决。
主要原因是:系统原有的OpenJDK设置干扰了手动安装的JDK。干扰的文件是:/etc/profile.d/java-awt-font-gasp.sh
解决的办法是:
一、将OpenJDK的相关设置Copy到你的Jdk下的Jre中
sudo cp -p /etc/java-7-openjdk/properties /opt/Java/jdk1.8.0_66/jre/lib/
如果只是为了解决上面的问题,也可以不Copy,但为了保险起见……
二、将文件备份
sudo cp -p /etc/profile.d/java-awt-font-gasp.sh ~/.local/share/init.d-bak
三、删除文件
sudo rm /etc/profile.d/java-awt-font-gasp.sh
四、注销退出或是重启,解决问题

<think>好的,我现在需要解决用户遇到的Nacos启动时的“Permission denied”错误。用户之前已经得到了一些分步解决方案,现在他们又提供了更多的站内引用,我需要结合这些引用来完善回答。 首先,用户的问题是关于启动Nacos时出现的权限被拒绝错误,具体是start.out文件无法写入。根据用户提供的引用,有几个关键点需要注意: 1. 引用[1]提到启动时可能需要使用单机模式,但用户已经尝试过,可能不是主要问题,但需要确认是否正确使用命令。 2. 引用[3]明确指出权限问题,建议修改start.out和logs目录的权限为777,但需要注意安全性。 3. 引用[5]提到在systemd服务中可能出现的权限问题,尤其是ExecStart命令的执行权限和路径问题。 4. 用户之前的回答中已经涉及了检查路径权限、脚本执行权限、SELinux设置等,现在需要整合新的引用信息。 接下来,我需要将这些信息整合到解决方案中。首先,确保用户正确使用启动命令,包括单机模式。其次,处理文件和目录权限,特别是logs目录的所有权和权限。同时,考虑到用户可能在systemd服务中配置自启动,需要检查服务文件的权限设置,比如使用正确用户运行,以及路径是否正确。 需要注意的潜在问题包括: - 用户可能没有正确指定单机模式,导致尝试集群模式而引发其他权限问题- logs目录可能不存在,导致无法创建start.out文件。 - SELinux或AppArmor可能阻止写入操作,即使文件权限正确。 - 在systemd服务中,可能需要使用绝对路径或设置WorkingDirectory。 另外,用户提供的引用[5]提到在systemd服务中遇到权限问题,这可能是因为服务文件中的ExecStart命令没有正确权限,或者执行用户没有访问所需目录的权限。需要指导用户检查服务文件的配置,确保使用正确的用户和组,并设置适当的权限。 还要考虑用户可能使用不同的系统环境,如Deepin或RHEL,不同系统可能有不同的安全策略。例如,在RHEL中使用SELinux,而在Ubuntu中使用AppArmor,处理方式可能不同。 最后,需要强调安全性,避免直接使用chmod 777,而是建议更严格的权限设置,如755或750,并指定合适的用户和组。 总结步骤: 1. 确保启动命令正确,使用单机模式。 2. 检查并修复logs目录和文件的权限及所有权。 3. 处理SELinux/AppArmor问题。 4. 检查启动脚本和执行用户的权限。 5. 针对systemd服务配置进行调整。 6. 提供安全建议,避免过度开放权限。</think>### 分步解决方案:解决Nacos启动时"Permission denied"错误(整合优化版) --- #### **1. 确认启动命令格式正确** - **关键操作**:明确指定单机模式启动(避免默认集群模式导致额外权限依赖) ```bash sh ./startup.sh -m standalone # 基础命令[^1] ``` - 若仍报错,尝试强制使用Bash解释器: ```bash bash -f ./startup.sh -m standalone # 强制Bash执行[^1] ``` --- #### **2. 修复日志目录权限(核心步骤)** - **问题根源**:Nacos需要写入`/opt/nacos/logs/start.out`,但目录或文件权限不足[^3] - **操作流程**: 1. **创建目录**(若路径不存在): ```bash sudo mkdir -p /opt/nacos/logs # 递归创建目录 ``` 2. **修改所有权**(推荐使用专用用户如`nacos`): ```bash sudo chown -R nacos:nacos /opt/nacos # 递归修改所有者和组 ``` 3. **设置安全权限**(避免`chmod 777`): ```bash sudo chmod -R 755 /opt/nacos/logs # 目录: rwxr-xr-x touch /opt/nacos/logs/start.out # 预创建日志文件 sudo chmod 644 /opt/nacos/logs/start.out # 文件: rw-r--r-- ``` --- #### **3. 处理启动脚本权限** - **验证与修复**: ```bash # 检查脚本权限 ls -l bin/startup.sh # 应显示 -rwxr-xr-x # 若无执行权限: chmod +x bin/startup.sh # 添加执行权限 ``` --- #### **4. 以指定用户身份运行(生产环境关键步骤)** - **避免使用root**:通过`sudo -u`指定专用用户: ```bash sudo -u nacos sh bin/startup.sh -m standalone # 切换用户执行 ``` - **Systemd服务配置示例**(解决引用[5]问题): ```ini [Unit] Description=Nacos Server After=network.target [Service] Type=forking User=nacos # 指定运行用户 Group=nacos # 指定运行组 WorkingDirectory=/opt/nacos # 设置工作目录 ExecStart=/opt/nacos/bin/startup.sh -m standalone # 绝对路径 ExecStop=/opt/nacos/bin/shutdown.sh Restart=on-failure [Install] WantedBy=multi-user.target ``` - **重载服务**: ```bash sudo systemctl daemon-reload sudo systemctl restart nacos.service ``` --- #### **5. 处理SELinux/AppArmor限制** - **检测SELinux日志**: ```bash grep "avc:.*denied" /var/log/audit/audit.log # 定位权限拒绝事件 ``` - **临时解决方案**(仅测试环境): ```bash sudo setenforce 0 # 临时关闭SELinux ``` - **永久解决方案**: ```bash sudo semanage fcontext -a -t var_log_t "/opt/nacos/logs(/.*)?" sudo restorecon -Rv /opt/nacos/logs # 应用新策略 ``` --- #### **6. 特殊场景处理** - **Docker容器部署**: ```bash # 宿主机预先授权(避免容器内权限问题) sudo mkdir -p /opt/nacos/logs && sudo chmod 755 /opt/nacos/logs # 启动容器时绑定用户 docker run -u $(id -u nacos):$(id -g nacos) -v /opt/nacos/logs:/home/nacos/logs ... ``` - **Deepin/Ubuntu系统**: ```bash # 使用nohup时显式指定用户 sudo -u nacos nohup sh bin/startup.sh -m standalone & ``` --- ### 安全增强建议 1. **最小权限原则**: - 避免使用`chmod 777`,优先使用`755`(目录)和`644`(文件)[^3] - 专用用户`nacos`应仅拥有`/opt/nacos`目录权限,无其他系统权限 2. **日志文件分离**: ```bash # 修改conf/application.properties指定日志路径 server.tomcat.basedir=/var/log/nacos ``` 3. **审计策略**: ```bash # 监控Nacos目录访问 sudo auditctl -w /opt/nacos/logs -p rwxa ``` --- ### 引用说明 [^1]: 单机模式启动命令与解释器选择 [^3]: 权限修复的安全性与风险控制 [^5]: Systemd服务配置中用户权限与路径规范
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值