解决命令行下.class编码为base64字符串存在换行的问题

java中用到ClassLoader.defineClass的时候,一般需要从base64字符串解码后获得byte数组。制作前面提到的base64字符串难免就需要对java文件进行编译,再对class文件进行base64,网上推荐方法是linux用base64命令,windows->certutil命令,实际上两个命令都会对base64字符串进行换行,甚至certutil还会写入文件,获取base64之后还要去除换行,麻烦!!!

一行解决问题,直接输出一行base64字符串到命令行界面不行吗?所以研究了一下,整了个一行解决问题的方法

linux

javac Test.java; cat Test.class | base64 -w 0 | xargs

windows,powershell

javac .\Test.java ; $a = [System.IO.File]::ReadAllBytes(".\Test.class") ; [System.Convert]::ToBase64String($a)
posted @ 2021-07-07 16:47  bitterz  阅读(572)  评论(0编辑  收藏  举报