当前位置: 首页 > news >正文

低级错误 System.setProperty 值为空时引发空指针

背景

一个简单的通过配置设置到系统环境变量,然后程序继续用这个配置的方法,理论上配置key不存在应该不至于出错才对。

结果修改配置后程序起动不了了,怎么回事呢?本文记录这个低级错误。

配置用法

维护的 properties 配置文件,然后读取后再设置到 Java 的环境变量中,下面这样:

public static void main(String[] args) {
    Properties properties = new Properties();
    System.setProperty("test", properties.getProperty("test"));
}

运行时空指针了:
在这里插入图片描述

加固

这个老古董的项目,这种低级问题真是奇怪。要不就直接用 Properties 配置里面来获取配置,要不就设置一个默认值呗。理论上配置文件里面可以没有这一项配置的,没有的话,程序能正常启动才行。

因为这几项是关于 Kafka 认证配置的,有些情况下可能就是没有认证配置,运维最简单的方法就是直接注释掉这些配置,程序依然能正常启动才对,而不应该强制要求配置里面必须有这个配置但是值为空。这种黑盒程序谁知道呢!

System.setProperty 值为 null 的时候竟然引发空指针,确实没想到过!

相关文章:

  • ubuntu,react的学习(1)
  • PandaAI:一个基于AI的对话式数据分析工具
  • 2025 年前端与后端开发方向的抉择与展望-优雅草卓伊凡
  • C++: 类型转换
  • 构建k8s下Helm私有仓库与自定义Chart开发指南
  • Workbench运动副与dyna对应关系(一)
  • Linux 实验
  • SQL并行产生进程数量问题
  • 使用sass 实现px转vh或vw,适配适老化时,在设计图字体大小的基础上,增加3px(可配置),
  • VUE通过ref来获取dom元素及其他属性
  • 【免费】2005-2019年各地级市绿色专利申请量数据
  • Johnson
  • STM32F103C8T6单片机的起始点:使用GPIO输出点亮我们的第一个小灯(标准库篇)
  • 【Vue】b站黑马视频学习笔记(导览)
  • 彻底解决VS2008编译错误:fatal error C1083 无法打开包括文件“stdint.h“
  • LabVIEW 油井动液面在线监测系统​
  • SolidWorks打开.stp/.STEP文件出现默认模板无效的问题
  • python中pyside6多个py文件生成exe
  • 如何根据设计稿进行移动端适配:全面详解
  • 内存序问题排查
  • 个人网站设计 优帮云/seo 是什么
  • 网站上传照片 传不上去/江门网站建设模板
  • 网站建设服务器的配置/seo网站推广经理
  • 西安做网站公司哪家好/游戏推广文案
  • 建设免费网站模板/写手接单平台
  • 东莞做网站网络公司/百度seo快速排名优化服务