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

golang在goland编译时获取环境变量失效

在golang中, 我们通常使用os包来获取环境变量,如:

os.Getenv()
os.LookupEnv()

等。

但如果我们使用goland编译器,在编译是,这时操作环境变量,会发现os包读取到的环境变量值不变:

        新增后,读到的值还是空值;

        修改后,读到的还是修改前的值。

排查了好久,才发现一些问题:

        goland在启动时,会加载环境变量,并在运行时缓存这些变量,导致在系统上操作缓存变更后,os包读到值不会变。

且,重启某个项目是无效的,需要关闭所有项目,把goland都关闭后,重新打开,才能生效。

但这个,其实很麻烦,每次一修改,就需要重启所有项目。

我只找到一个不是办法的办法,就是当你需要修改某个项目的环境变更且不想关闭其他项目时,可以在该项目启动的代码,或是新增一个临时项目,执行:

os.Setenv()

syscall.SetEnvironmentVariable()

去更新环境变量,然后再去掉代码(是有点麻烦)。

os.Setenv():只能单次生效

syscall.SetEnvironmentVariable():我还没测试过

我只用过goland编译器,不知道其他编译器会不会出现这种问题,或是哪位大神有其他解决办法,可以发评论告知下!

http://www.lryc.cn/news/169242.html

相关文章:

  • 一款非常容易上手的报表工具,简单操作实现BI炫酷界面数据展示,驱动支持众多不同类型的数据库,可视化神器,免开源了
  • 蓝桥杯 题库 简单 每日十题 day3
  • 基于SSM+Vue的高校实验室管理系统的设计与实现
  • C语言天花板——指针(初阶)
  • 关于第一届全球电子纸创新应用金奖征集评选及报名指南
  • idea搭建项目找不到Tomcat
  • 类和对象三大特性之继承
  • Debian 12安装Docker
  • 小谈设计模式(4)—单一职责原则
  • ATF(TF-A) EL3 SPMC威胁模型-安全检测与评估
  • AI绘画Stable Diffusion原理之扩散模型DDPM
  • NSS [西湖论剑 2022]real_ez_node
  • MySQL常用函数集锦 --- 字符串|数值|日期|流程函数总结
  • GaussDB(DWS)云原生数仓技术解析:湖仓一体,体验与大数据互联互通
  • Navicat历史版本下载及地址组成分析
  • avue之动态切换表格样式问题
  • 彻底解决ruoyi分页后总数错误的问题
  • SpringMVC学习笔记——1
  • 20230908_python练习_selenium模块爬取网页小说练习
  • Python:安装Flask web框架hello world示例
  • 深度解析NLP文本摘要技术:定义、应用与PyTorch实战
  • zabbix监控多实例redis
  • win11将visual studio 2022的调试控制台改为windows terminal
  • 社区问答精选——长安链开发知多少?(8月)
  • 神经网络-Unet网络
  • Java | 多线程综合练习
  • Kotlin变量与控制条件的基本用法
  • 第18章_瑞萨MCU零基础入门系列教程之GPT
  • openssl websockets
  • Vue 组件的单元测试