启动项目出现:不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

启动项目的时候遇到:不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK,oracle数据库版本是Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod,已经添加了orai18n的依赖,依旧不起作用。

image

你好,

数据库确定是要使用 ZHS16GBK 这个字符集吗?
orai18n.jar 需要加到liquibase运行时的classpath中,你是如何添加的?

因为现在连接的数据库只是给我一个实例,我没有权限去更改,所以只能使用ZHS16GBK。

这个orai18n.jar,我是直接在build.gradle中添加的依赖。所以不应该是这样的吧 :joy:

在项目的 resources 目录添加一个 liquibase.properties,然后把 orai18n.jar 放到 resources 同级的 lib 目录(我这里以management.jar做示例):
image

然后 liquibase.properties 内容如下:

classpath: ../lib/orai18n.jar

试试看?

加上了,但是还是出现那个弹窗

image

liquibase.properties 里面添加:

liquibase.includeSystemClasspath: true
licenseKey: 111111

然后在系统的环境变量配置 classpath 包含orai18n.jar 试试。

第一个参数是:include-system-classpath
第二个参数是试验用的,确保 liquibase 运行时读取了 liquibase.properties 文件,运行日志里应该会报一个warning:WARNING: The parameter 'licenseKey' was IGNORED.

我是macOS,不是Windows,mac的话该怎么添加一下? :joy:

在 IDEA 的run tab里可以看到liquibase用的哪个java:
image

然后在 项目中按 F4 打开项目设置,在下面对应JDK版本的classpath里添加 orai18n.jar 试试:
image

还是不起效果,我同事之前也遇到过这个问题,但是他是在控制台报错,并不是弹窗提示。他仅仅是在build.gradle中添加了orai18n的依赖就解决了。

哦,那可能跟Studio有关,我们问问Studio团队那边,今天他们休息,可能没有那么快回复

1 个赞

好的,那麻烦您了

我今天又试了一下,好像是在Mac版本的studio,才会出现无法启动并且弹窗提醒这个问题,我同事是Windows系统,他在build.gradle中添加了orai18n的依赖就可以正常运行项目。所以我推断只有Mac的studio连接字符集为ZHS16GBK的Oracle数据库,才会无法正常启动。

按这个试试:

Please try to add this orai18n.jar to Additional DB Drivers list in Studio
Jmix Toolbar → Settings (Gear icon) → Jmix Plugin Settings… → Database Drivers → Oracle Database

好的,解决了!谢谢两位!