博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
识别jar的编译JDK版本
阅读量:2386 次
发布时间:2019-05-10

本文共 2124 字,大约阅读时间需要 7 分钟。

解压jar,获取xxx.calss文件

dos命令行javap -verbose classname

import java.io.InputStream;import java.io.PrintWriter;public class CMD命令 {    public static void main(String[] args) {        String filePath = "D:/git/new_baiwang/sdk-java/sdk-java/target/classes/com/baiwang/bop/Constants.class";        docmd(filePath);    }    static void docmd(String filePath) {        String[] command = { "cmd", };        Process p = null;        try {            p = Runtime.getRuntime().exec(command);            new Thread(new SyncPipe(p.getInputStream())).start();            new Thread(new SyncPipe(p.getErrorStream())).start();            PrintWriter stdin = new PrintWriter(p.getOutputStream());            String ml = "javap -verbose " + filePath;            stdin.println(ml);            stdin.close();        } catch (Exception e) {            throw new RuntimeException("编译出现错误:" + e.getMessage());        }    }}class SyncPipe implements Runnable {    private final InputStream istrm_;    public SyncPipe(InputStream istrm) {        istrm_ = istrm;    }    public void run() {        try {            final byte[] buffer = new byte[10240];            StringBuffer sbf = new StringBuffer();            for (int length = 0; (length = istrm_.read(buffer)) != -1;) {                sbf.append(new String(buffer, 0, length));            }            String msg = sbf.toString();            if (msg.length() > 10) {                if (msg.contains("major version: 50")) {                    System.out.println("编译的JDK版本是1.6");                } else if (msg.contains("major version: 51")) {                    System.out.println("编译的JDK版本是1.7");                } else if (msg.contains("major version: 52")) {                    System.out.println("编译的JDK版本是1.8");                } else {                    System.err.println("运行错误,未知版本!");                    System.out.println(msg);                }            } else {                System.err.println("运行错误,没有想要的信息!");            }        } catch (Exception e) {            throw new RuntimeException("处理命令出现错误:" + e.getMessage());        }    }}

 

posted @
2017-09-13 21:02 阅读(
...) 评论(
...)

转载地址:http://ckjab.baihongyu.com/

你可能感兴趣的文章
Nginx location 和 rewrite retry
查看>>
基于nginx的FastCGI的缓存配置
查看>>
Nginx模块fastcgi_cache的几个注意点
查看>>
PHP使用curl伪造IP地址和header信息
查看>>
代理服务器中的HTTP代理与SOCKS代理有什么区别?
查看>>
零基础Python学习路线,小白的进阶之路!
查看>>
CSS的23个垂直居中技巧,你都学会了吗?
查看>>
黑客攻击用的最短代码大揭秘,颠覆你的世界观!
查看>>
零基础的自学前端之路,当年的入坑之旅
查看>>
新手程序员?教你解决办法!基础都掌握了,动手敲代码就一脸懵逼
查看>>
程序员快速进阶学习到底要看书还是要看视频?
查看>>
web游戏框架哪家强?国内外精选优质框架分析及注意事项
查看>>
各行业都爱用什么编程语言开发?
查看>>
css3实现ps蒙版效果以及动画,炫酷吊炸天!
查看>>
程序员休息时间接私活遭公司辞退,不明觉厉?
查看>>
CSS 、JS实现浪漫流星雨动画
查看>>
新手网站建设指南(2)
查看>>
新手网站建设优化,这些网站为你提供数之不尽的免费素材!(3)
查看>>
HTML特殊字符显示(常用到的特殊符号,箭头相关,数学相关,标点,符号相关等)...
查看>>
40岁的程序员找不到工作,原来码农真的是碗青春饭
查看>>