连接oracle报 错误: Undefined Error

如果你的电脑用户名是纯英文,那么这篇文章可能对你没用

ERROR com.alibaba.druid.pool.DruidDataSource - init datasource error, url: jdbc:oracle:thin:@//192.168.111.86:1521/sjtsoms

java.sql.SQLRecoverableException: IO 错误: Undefined Error

md,我要是不看到《SpringBoot项目启动Application报错------ojdbc8驱动升级后不兼容中文用户名导致》这篇文章,这辈子都想不到。

之前的项目也是这样我加了个中文包和换了个依赖就行了,就是有一个项目怎么都是不行,还好找到了方法。
也在文章(方法一)的基础上进行了拓展,个人代码用方法1完事,公司的代码我就不想动无关的我就用方法3

方法一

在Java应用启动时设置System属性,将user.name属性值改为英文名。

如何设置System.setProperty("user.name", "English Name")

直接在代码中设置 :在Java应用的入口方法(如main方法)中加
System.setProperty("user.name", "English Name");。这种方式的缺点是对代码的侵入性较大,而且不便于维护。

java 复制代码
public class Application {
    public static void main(String[] args) {
        System.setProperty("user.name", "EnglishIkun");
        // 启动Spring Boot应用或其他应用逻辑
    }
}

方法二

使用启动脚本设置:如果您的应用是通过脚本启动的(例如一个shell脚本或bat脚本),您可以在脚本中设置JVM参数。这样做的好处是不需要修改Java代码。

  • 对于Shell脚本(Linux/Unix):

    bash 复制代码
    java -Duser.name=EnglishName -jar yourapp.jar
  • 对于Batch脚本(Windows):

    bash 复制代码
    java -Duser.name=EnglishName -jar yourapp.jar

方法三

使用IDE设置:如果您是在开发环境中运行应用,如IntelliJ IDEA或Eclipse,您可以在运行> 配置中添加VM选项:

复制代码
-Duser.name=EnglishName

这种方式适合开发和测试,但不适合生产环境。

考虑到您的用户名难以修改,我建议使用第二种或第三种方法,这样可以避免直接修改代码。如> 果您的应用是通过某种自动化方式部署的,您可能需要在部署脚本中添加相应的JVM参数设置。

相关推荐
明志数科5 分钟前
宇树科技IPO背后的产业逻辑:人形机器人从“讲故事“到“交数据“
运维·服务器·数据库
淼澄研学7 分钟前
基于RAG与Milvus向量数据库的搜题长尾问题检索实操教程
数据库·milvus
Dovis(誓平步青云)11 分钟前
DevEco Studio 6.1.1 Windows 安装实录:从下载校验到首次启动
android·开发语言·数据库·人工智能·windows·harmonyos
Data_Journal20 分钟前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
霸道流氓气质41 分钟前
Redis Pub/Sub — 概念、原理、场景与代码示例
数据库·redis·缓存
李高钢1 小时前
C# WPF Prism 进阶(二):区域(Region)与模块化(Module)
java·前端·数据库
long3161 小时前
枚举(Enums)
java·开发语言·数据库
TJHHH.1 小时前
SQL注入学习总结
数据库·笔记·sql·学习·注入
ACP广源盛139246256733 小时前
Qwen3.8‑2.4T 开源落地@ACP#国产 MoE 大模型私有化部署中 MST 多屏转换芯片 GSV2231 硬件价值与应用场景
大数据·数据库·人工智能·嵌入式硬件
java_logo3 小时前
Docker 部署 openGauss:轻松搭建企业级开源关系型数据库平台
数据库·docker·开源·opengauss·轩辕镜像·opengauss部署教程·opengauss部署文档