IntelliJ中Glassfish启动编码错误,如何改为UTF-8?
嘿,这个问题我之前踩过坑!IntelliJ自动生成的Glassfish启动配置经常会偷偷覆盖你设置的VM编码参数,尤其是Windows环境下默认会带windows-1252。给你几个亲测有效的解决办法:
方法1:直接修改Glassfish域配置文件(最稳妥)
Glassfish的域级配置优先级最高,改这里能一劳永逸:
- 找到你的Glassfish安装路径下的
glassfish5\glassfish\domains\domain1\config文件夹 - 打开
domain.xml文件,定位到<java-config>节点(一般在文件中后段) - 在该节点内添加或修改jvm-options,确保包含这一行:
<jvm-options>-Dfile.encoding=UTF-8</jvm-options>
- 保存文件后重启Glassfish,启动时就会自动使用UTF-8编码了
方法2:调整IntelliJ的Glassfish运行配置
如果不想改动Glassfish全局配置,也可以在IntelliJ里强制指定启动参数:
- 点击顶部菜单栏的
Run > Edit Configurations,找到你的Glassfish运行配置 - 切换到Startup/Connection标签页
- 在Run选项卡的「Command line」输入框中,替换默认命令为手动指定编码的形式:
C:\path\glassfish5\glassfish\bin\asadmin.bat start-domain --jvm-options "-Dfile.encoding=UTF-8" domain1
这里的--jvm-options参数会强制覆盖IntelliJ自动生成的编码参数,确保启动时用UTF-8
4. 保存配置后重新启动项目,就能看到编码参数生效了
方法3:统一IntelliJ全局编码设置(辅助优化)
有时候IntelliJ自身的编码设置会影响启动参数的生成,建议同步调整:
- 打开
File > Settings > Editor > File Encodings - 将以下选项全部设置为UTF-8:
- Project Encoding
- Default encoding for properties files
- 勾选「Transparent native-to-ascii conversion」
- 点击「Apply」保存,这能避免IDE默认插入windows-1252编码参数
内容的提问来源于stack exchange,提问作者Mercious
相关产品推荐
相关产品推荐

