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

Gradle IDEA 乱码

文章目录

    • 环境
    • 代码
    • 测试结果
      • 配置 JAVA_TOOL_OPTIONS
      • 配置 build.gradle.kts
      • 配置 idea64.exe.vmoptions
      • 无配置
    • 总结
    • 问题链接

环境

Java 环境

java version "21.0.2" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 21.0.2+13-LTS-58)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.2+13-LTS-58, mixed mode, sharing)

Gradle 环境

------------------------------------------------------------
Gradle 8.5
------------------------------------------------------------Build time:   2023-11-29 14:08:57 UTC
Revision:     28aca86a7180baa17117e0e5ba01d8ea9feca598Kotlin:       1.9.20
Groovy:       3.0.17
Ant:          Apache Ant(TM) version 1.10.13 compiled on January 4 2023
JVM:          21.0.2 (Oracle Corporation 21.0.2+13-LTS-58)
OS:           Windows 11 10.0 amd64

IDEA

IntelliJ IDEA 2023.3.3 (Ultimate Edition)
Build #IU-233.14015.106, built on January 25, 2024
Subscription is active until October 14, 2024.
Runtime version: 17.0.9+7-b1087.11 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11.0
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 32
Registry:debugger.new.tool.window.layout=trueide.experimental.ui=true
Non-Bundled Plugins:com.jetbrains.packagesearch.intellij-plugin (233.11799.196)com.intellij.ml.llm (233.14015.137)
Kotlin: 233.14015.106-IJ

代码

Main.java

package com.stu;public class Main {public static void main(String[] args) {Main main = new Main();main.test00();}public void test00() {System.out.println("中文测试");System.out.println("sun.stdout.encoding = " + System.getProperty("sun.stdout.encoding"));System.out.println("sun.stderr.encoding = " + System.getProperty("sun.stderr.encoding"));System.out.println("      file.encoding = " + System.getProperty("file.encoding"));System.out.println("    native.encoding = " + System.getProperty("native.encoding"));}
}

build.gradle.kts

/** This file was generated by the Gradle 'init' task.** This is a general purpose Gradle build.* To learn more about Gradle by exploring our Samples at https://docs.gradle.org/8.5/samples*/plugins {id("java")
}tasks.register("runCode", JavaExec::class) {//defaultCharacterEncoding = "GBK"// println("测试Code" + defaultCharacterEncoding)mainClass = "com.stu.Main"classpath = sourceSets["main"].runtimeClasspathgroup = "Exec"description = "运行指定代码"
}// tasks.register("runStu") {
//     for (sourceSetContainer in sourceSets) {
//         println(sourceSetContainer)
//     }//     println(sourceSets)
// }// tasks.withType<JavaCompile>().configureEach {// }/*
tasks.withType(JavaExec::class.java) {val args:List<String> = ArrayList()args.addLast("-Dsun.stdout.encoding=GBK")args.addLast("-Dsun.stderr.encoding=GBK")args.addLast("-Dfile.encoding=GBK")this.jvmArgs = argsprintln(this.jvmArgs)
}
*/

测试结果

配置 JAVA_TOOL_OPTIONS

无效

# 配置 JAVA_TOOL_OPTIONS  -Dsun.stdout.encoding=GBK -Dsun.stderr.encoding=GBK -Dfile.encoding=GBK> Task :runCode
涓枃娴嬭瘯
sun.stdout.encoding = UTF-8
sun.stderr.encoding = UTF-8file.encoding = GBKnative.encoding = GBK

配置 build.gradle.kts

有效

tasks.withType(JavaExec::class.java) {val args:List<String> = ArrayList()args.addLast("-Dsun.stdout.encoding=GBK")args.addLast("-Dsun.stderr.encoding=GBK")args.addLast("-Dfile.encoding=GBK")this.jvmArgs = argsprintln(this.jvmArgs)
}
> Task :runCode
中文测试
sun.stdout.encoding = GBK
sun.stderr.encoding = GBKfile.encoding = GBKnative.encoding = GBK

配置 idea64.exe.vmoptions

无效

-Dsun.stdout.encoding=GBK
-Dsun.stderr.encoding=GBK
-Dfile.encoding=GBK
> Task :runCode
涓枃娴嬭瘯
sun.stdout.encoding = UTF-8
sun.stderr.encoding = UTF-8file.encoding = GBKnative.encoding = GBK

无配置

无效


> Task :runCode
涓枃娴嬭瘯
sun.stdout.encoding = UTF-8
sun.stderr.encoding = UTF-8file.encoding = GBKnative.encoding = GBK

总结

只有配置JavaExec 运行环境才能不乱码,配置了JAVA_TOOL_OPTIONS,可以在VSCode 中 PowerShell 执行任务中日志不乱码,但是执行结果还是乱码。

问题链接

Gradle 社区问题: Gradle Garbled code

Stack overflow: Why do Java programs created using Gradle generate garbled code when running

相关文章:

  • linux 下 chrome 无法在设置里面配置代理的解决方法
  • 标准库 STM32+EC11编码器+I2C ssd1306多级菜单例程
  • 【JAVA WEB】盒模型
  • OpenEuler20.03LTS SP2 上安装 OpenGauss3.0.0 单机部署过程(二)
  • Webpack插件浅析
  • 4.0 Zookeeper Java 客户端搭建
  • 高仿原神官网UI 纯html源码
  • SpringBoot日志插件log4J和slf4J的使用和比较含完整示例
  • LeetCode Python - 7. 整数反转
  • 在Visual Studio中引用和链接OpenSceneGraph (OSG) 库
  • Oracle篇—logminer日志挖掘恢复误操作数据
  • 学习Android的第八天
  • Flink面试准备
  • 第1节、电路连接【51单片机+L298N步进电机系列】
  • 查看系统进程信息的Tasklist命令
  • 分享的文章《人生如棋》
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • Angular4 模板式表单用法以及验证
  • ComponentOne 2017 V2版本正式发布
  • express + mock 让前后台并行开发
  • iOS编译提示和导航提示
  • Javascript基础之Array数组API
  • js中forEach回调同异步问题
  • python 装饰器(一)
  • python3 使用 asyncio 代替线程
  • Spring Boot MyBatis配置多种数据库
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • Windows Containers 大冒险: 容器网络
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 技术:超级实用的电脑小技巧
  • 扑朔迷离的属性和特性【彻底弄清】
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微信开放平台全网发布【失败】的几点排查方法
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 用quicker-worker.js轻松跑一个大数据遍历
  • ​Linux·i2c驱动架构​
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #QT项目实战(天气预报)
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (转)ABI是什么
  • (转)甲方乙方——赵民谈找工作
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net开发时的诡异问题,button的onclick事件无效