如果你的电脑用户名是纯英文,那么这篇文章可能对你没用
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");
。这种方式的缺点是对代码的侵入性较大,而且不便于维护。public class Application { public static void main(String[] args) { System.setProperty("user.name", "EnglishIkun"); // 启动Spring Boot应用或其他应用逻辑 } }
- 1
- 2
- 3
- 4
- 5
- 6
使用启动脚本设置:如果您的应用是通过脚本启动的(例如一个shell脚本或bat脚本),您可以在脚本中设置JVM参数。这样做的好处是不需要修改Java代码。
- 对于Shell脚本(Linux/Unix):
java -Duser.name=EnglishName -jar yourapp.jar
- 1
- 对于Batch脚本(Windows):
java -Duser.name=EnglishName -jar yourapp.jar
- 1
使用IDE设置:如果您是在开发环境中运行应用,如IntelliJ IDEA或Eclipse,您可以在运行> 配置中添加VM选项:
-Duser.name=EnglishName
- 1
这种方式适合开发和测试,但不适合生产环境。
考虑到您的用户名难以修改,我建议使用第二种或第三种方法,这样可以避免直接修改代码。如> 果您的应用是通过某种自动化方式部署的,您可能需要在部署脚本中添加相应的JVM参数设置。