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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL进阶查询篇(7)-触发器的创建和使用

MySQL数据库触发器的创建和使用 触发器(Trigger)是MySQL数据库中非常强大且有用的功能&#xff0c;它可以在特定的数据库事件发生时自动执行一段预定义的代码。触发器可以用于实现数据完整性约束、自动化业务逻辑、审计日志等功能。本文将介绍MySQL数据库中触发器的创建和使用…

秒杀相关问题解决

秒杀 超卖问题 如下,我们先来复现问题,抢购秒杀券的代码逻辑也是很简单, 先判断优惠券是否开始了,是的化,判断库存是否充足,如果是的化,扣减库存,最后创建订单 如下是代码 Override Transactional public Result seckillVoucher(Long voucherId) {//1.查询优惠券SeckillVo…

平台工程是 FinOps 的“黄金路径”

云成本催生出了各种工具集。这些工具集目前主要用于现代 IT 堆栈&#xff0c;以加强资源、减少浪费、优化已确定的效率&#xff0c;并在最高、最广和最广泛的层面上监控系统的运行状况。 在云计算环境中&#xff0c;MLOps 实践的兴起旨在使软件工程与运维工程保持一致&#xff…

Linux 命令行的世界 :3.探索操作系统

既然我们已经知道了如何在文件系统中跳转&#xff0c;是时候开始 Linux 操作系统之旅了。然而在开始之前&#xff0c;我们先学习一些对研究Linux 系统有帮助的命令。 ls —列出目录内容 file —确定文件类型 less —浏览文件内容 ls 可能是用户最常使用的命令了&#xff0c;这…

double精度丢失问题

前言 在Java中&#xff0c;使用double类型时可能会遇到精度丢失的问题。这是由于double类型是一种浮点数类型&#xff0c;在表示某些小数时可能会存在精度损失。这种情况通常是由于浮点数的二进制表示法无法准确地表示某些十进制小数&#xff0c;导致精度丢失。 为了避免这种问…

C#使用哈希表对XML文件进行查询

目录 一、使用的方法 1.Hashtable哈希表 2.Hashtable哈希表的Add方法 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;示例 3.XML文件的使用 二、实例 1.源码 2.生成效果 可以通过使用哈希表可以对XML文件进行查询。 一、使用的方法 1.Hashtable哈希表…

MySQL基础查询篇(9)-数学函数在查询中的应用

在MySQL数据库中&#xff0c;数学函数在查询中扮演了非常重要的角色。这些函数可以帮助我们进行各种数学计算和处理&#xff0c;使得我们能够更有效地处理和分析数据。本文将介绍一些常用的MySQL数学函数及其在查询中的应用。 1. ABS函数 ABS函数用于返回一个数值的绝对值。在…

证明之黄金分割比的无理性

黄金分割比的无理性 “黄金分割比的神奇之处&#xff1a;视觉化证明与数学的魅力” 人们在学习高等数学时&#xff0c;走到一个证明的结尾处&#xff0c;通常会经历这样的思考&#xff1a;“我理解每一行是怎样由前一行得到的&#xff0c;但是我却不明白为什么这个定理是正确…

【北邮鲁鹏老师计算机视觉课程笔记】01 introduction

1 生活中的计算机视觉 生活中的各种计算机视觉识别系统已经广泛地应用起来了。 2 计算机视觉与其他学科的关系 认知科学和神经科学是研究人类视觉系统的&#xff0c;如果能把人类视觉系统学习得更好&#xff0c;可以迁移到计算机视觉。是计算机视觉的理论基础。 算法、系统、框…

Sodinokibi(REvil)勒索病毒最新变种,攻击Linux平台

前言 国外安全研究人员爆光了一个Linux平台上疑似Sodinokibi勒索病毒家族最新样本&#xff0c;如下所示&#xff1a; Sodinokibi(REvil)勒索病毒的详细分析以及资料可以参考笔者之前的一些文章&#xff0c;这款勒索病毒黑客组织此前一直以Windows平台为主要的攻击目标&#xf…

c语言--指针运算

目录 一、指针-整数二、指针-指针2.1条件2.2两个指针指向同一块空间代码2.2.1运行结果 2.3两个指针指向不同块空间代码2.3.1运行结果 2.4总结 三、指针的关系运算3.1代码3.1.1运行结果3.1.2分析 一、指针整数 用数组举例&#xff1a; 因为数组在内存中是连续存放的&#xff0c…

Git版本与分支

目录 一、Git 二、配置SSH 1.什么是SSH Key 2.配置SSH Key 三、分支 1.为什么要使用分支 2.四个环境及特点 3.实践操作 1.创建分支 2.查看分支 3.切换分支 4.合并分支 5.删除分支 6.重命名分支 7.推送远程分支 8.拉取远程分支 9.克隆指定分支 四、版本 1.什…

2 scala集合-元组和列表

1 元组 元组也是可以存放不同数据类型的元素&#xff0c;并且最重要的是&#xff0c;元组中的元素是不可变的。 例如&#xff0c;定义一个元组&#xff0c;包含字符串 hello&#xff0c;数字 20。如果试图把数字 20 修改为 1&#xff0c;则会报错。 scala> var a ("…

IOS破解软件安装教程

对于很多iOS用户而言&#xff0c;获取软件的途径显得较为单一&#xff0c;必须通过App Store进行下载安装。 这样的限制&#xff0c;时常让人羡慕安卓系统那些自由下载各类版本软件的便捷。 心中不禁生出疑问&#xff1a;难道iOS世界里&#xff0c;就不存在所谓的“破解版”软件…

Python 字符串模块

Python字符串模块 它是一个内置模块&#xff0c;我们在使用其常量和类之前必须导入它。 字符串模块常量 让我们看看字符串模块中定义的常量。 import string# 字符串模块常量 print(string.ascii_letters) print(string.ascii_lowercase) print(string.ascii_uppercase) pr…

【机房预约系统(C++版)】

一、机房预约系统需求 1.1、系统简介 学校现有几个规格不同的机房&#xff0c;由于使用时经常出现“撞车“现象,现开发一套机房预约系统&#xff0c;解决这一问题。 1.2、身份简介 分别有三种身份使用该程序学生代表:申请使用机房教师:审核学生的预约申请管理员:给学生、教…

c++基础——运算符重载

一、重载成员访问运算符&#xff08;->&#xff09; 重载的成员访问运算符&#xff08;函数&#xff09;必须返回类对象指针或自定义了"箭头"运算符的类的对象。c 中形如 obj->member() 的表达式&#xff0c;则obj是一个对象指针或者重载了"箭头"运算…

B站弹幕分析系统

视频展示&#xff0c;请点击。 尚硅谷案例 utllib的基本使用 # 使用urllib来获取百度首页的源码 import urllib.request# (1)定义一个url 就是你要访问的地址 url http://www.baidu.com# (2)模拟浏览器先服务器发送请求 response响应 response urllib.request.urlopen(url)…

【Java八股面试系列】并发编程-并发关键字,线程池

目录 并发关键字 Synchronized synchronized最主要的三种使用方式&#xff1a; 具体使用&#xff1a;双重校验锁单例模式 synchronized 底层实现原理&#xff1f; synchronized锁的优化 偏向锁 轻量级锁 重量级锁 Mark Word 与 Monitor 之间的关系 总结 偏向锁、轻量…

计算机网络(第六版)复习提纲30

B HTTP 名词解释&#xff1a;协议HTTP定义了浏览器怎样向万维网服务器请求万维网文档&#xff0c;以及服务器怎样把文档传给浏览器。从层次的角度看&#xff0c;HTTP是面向事务的应用层协议&#xff0c;它是万维网上可靠地交换文件的重要基础&#xff0c;不仅能够传送完成超文本…