我在上一篇帖子同样的 Java 文件,为什么直接用 Javac 编译和使用 Maven 编译出来所得到的字节码不一样?提到过这个问题,现在我已经把 Maven 的 jdk 版本给改掉了,但是为什么编译出来的字节码还是不一致呢?
Maven 编译的结果:
cafe babe 0000 0033 0016 0a00 0300 1307
0014 0700 1501 0006 3c69 6e69 743e 0100
0328 2956 0100 0443 6f64 6501 000f 4c69
6e65 4e75 6d62 6572 5461 626c 6501 0012
4c6f 6361 6c56 6172 6961 626c 6554 6162
6c65 0100 0474 6869 7301 0013 4c63 6f6d
2f64 7174 2f74 6573 742f 5465 7374 3b01
0004 6d61 696e 0100 1628 5b4c 6a61 7661
2f6c 616e 672f 5374 7269 6e67 3b29 5601
0004 6172 6773 0100 135b 4c6a 6176 612f
6c61 6e67 2f53 7472 696e 673b 0100 0169
0100 0149 0100 0a53 6f75 7263 6546 696c
6501 0009 5465 7374 2e6a 6176 610c 0004
0005 0100 1163 6f6d 2f64 7174 2f74 6573
742f 5465 7374 0100 106a 6176 612f 6c61
6e67 2f4f 626a 6563 7400 2000 0200 0300
0000 0000 0200 0000 0400 0500 0100 0600
0000 2f00 0100 0100 0000 052a b700 01b1
0000 0002 0007 0000 0006 0001 0000 0003
0008 0000 000c 0001 0000 0005 0009 000a
0000 0009 000b 000c 0001 0006 0000 003b
0001 0002 0000 0003 033c b100 0000 0200
0700 0000 0a00 0200 0000 0500 0200 0600
0800 0000 1600 0200 0000 0300 0d00 0e00
0000 0200 0100 0f00 1000 0100 0100 1100
0000 0200 12
直接用 javac 编译的结果:
cafe babe 0000 0033 000f 0a00 0300 0c07
000d 0700 0e01 0006 3c69 6e69 743e 0100
0328 2956 0100 0443 6f64 6501 000f 4c69
6e65 4e75 6d62 6572 5461 626c 6501 0004
6d61 696e 0100 1628 5b4c 6a61 7661 2f6c
616e 672f 5374 7269 6e67 3b29 5601 000a
536f 7572 6365 4669 6c65 0100 0954 6573
742e 6a61 7661 0c00 0400 0501 0011 636f
6d2f 6471 742f 7465 7374 2f54 6573 7401
0010 6a61 7661 2f6c 616e 672f 4f62 6a65
6374 0020 0002 0003 0000 0000 0002 0000
0004 0005 0001 0006 0000 001d 0001 0001
0000 0005 2ab7 0001 b100 0000 0100 0700
0000 0600 0100 0000 0300 0900 0800 0900
0100 0600 0000 1f00 0100 0200 0000 0303
3cb1 0000 0001 0007 0000 000a 0002 0000
0005 0002 0006 0001 000a 0000 0002 000b
1
sutra 2016-10-14 10:21:08 +08:00 1
Try this `javac -g` and then compare to Maven's.
|
2
SoloCompany 2016-10-15 00:11:13 +08:00
debug symbol
你想研究清楚,就在执行 mvn -X 看清楚所有 javac 选项来对比 |