解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)

添加去BOM处理

解决方案:去eclipse官网下载ecj4.6.2(根据自己的IEDA安装目录下lib中的ecjx.x.x.jar查看版本)源码(ecjsrc压缩包),修改org.eclipse.jdt.internal.compiler.util.Util类中的getInputStreamAsByteArray方法,添加去BOM处理

if(contents.length > 2 && (contents[0]&0xFF) == 0xEF && (contents[1] & 0xFF) == 0xBB && (contents[2] & 0xFF) == 0xBF) {  
    byte[] trim = new byte[contents.length - 3];  
    System.arraycopy(contents, 3, trim, 0, trim.length);    
    return trim;  
}

添加后重新编译jar包即可
解决方案参考链接:http://blog.csdn.net/roxliu/article/details/50523455

重新编译jar包

  • 1 在项目上鼠标右键 --> Open Module Settings
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第1张图片
  • 2, Artifacts --> + --> JAR --> From modules with dependencies...
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第2张图片
  • 3 Main Class是你这个项目(脚本)的主方法,就是要运行的类,选一个
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第3张图片
  • 4 如下图,设置 META-INF/MANIFEST.MF
    !!!!!切记,不能用默认的(起码我用默认的是不成功的)!!!!!
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第4张图片
  • 5 选中你这个项目的根目录,一定要放在根目录下
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第5张图片
  • 6 设置完是这样子的,关于 JAR files from libraries的两个选项:
    选中第一个的话,打完包后是一个jar包
    选中第二个的话,打完包后是一个jar包,外带你项目所用的jar包,个人推荐第二个
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第6张图片
  • 7 设置完后就可以点OK了
  • 8 这个页面, Build on make打上勾,其他的不一样也没事(2017版为Include in project build)
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第7张图片
  • 9 最后一步, Build Artifacts... --> XXX.jar --> Build
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第8张图片

    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第9张图片
  • 10 复制这里的路径去找jar包就行
    解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM)_第10张图片

你可能感兴趣的:(解决IDEA2017 不支持BOM的问题(使其支持,而非简单的去BOM))