31
2019
01

解决IDEA中Tomcat控制台乱码的脚本

IDEA启动Tomcat出现乱码,研究后发现只能通过修改配置文件解决,写了一个修改IDEA配置文件的脚本,可以传参(建议用pyinstaller打包使用)

import os
import sys

root = 'C:/Program Files/JetBrains/IntelliJ IDEA 2018.3/bin'

readme = '''
http://wp-cloud.cc/
water
2019-01-31
version: %s
IDEAConfig [-add] [-cls]
    -add        修改配置
    -cls        还原修改
'''
s_version = "1.0.3"

def update_config(name):
    fn = '%s/%s' % (root, name)
    if not os.path.exists(fn):
        print('没有找到配置文件:%s' % fn)
        return
    print(fn)
    f = open(fn, 'r')
    s = f.read()
    f.close()
    # print(s)

    if '-Dfile.encoding=UTF-8' not in s:
        s = s.strip() + '\n-Dfile.encoding=UTF-8'
        # print(s)
        if not os.path.exists(fn + '.bak'):
            print('备份文件成功!')
            os.rename(fn, fn + '.bak')

        f = open(fn, 'w')
        f.write(s)
        f.close()
        print('配置文件修改完成!')
    else:
        print('该配置文件不需要重复修改!')

def clear_config(name):
    fn = '%s/%s' % (root, name)
    if not os.path.exists(fn):
        print('没有找到配置文件:%s' % fn)
        return
    print(fn)
    f = open(fn, 'r')
    s = f.read()
    f.close()
    # print(s)

    if '-Dfile.encoding=UTF-8' in s:
        s = s.replace('\n-Dfile.encoding=UTF-8', '')
        # print(s)

        if not os.path.exists(fn + '.bak_cls'):
            print('备份文件成功!')
            os.rename(fn, fn + '.bak_cls')

        f = open(fn, 'w')
        f.write(s)
        f.close()
        print('配置文件修改完成!')
    else:
        print('该配置文件不需要重复修改!')

if __name__ == '__main__':
    i_len = len(sys.argv)
    if i_len == 2:
        cmd = sys.argv[1]
        if cmd == '-add':
            update_config('idea.exe.vmoptions')
            update_config('idea64.exe.vmoptions')
        elif cmd == '-cls':
            clear_config('idea.exe.vmoptions')
            clear_config('idea64.exe.vmoptions')
        else:
            print(readme.strip() % s_version)
    else:
        print(readme.strip() % s_version)

运行前

TIM截图20190131100907.png

运行后

TIM截图20190131101835.png

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。