javac错误“代码太大”?

2022-09-02 10:17:24

我有一个单元测试,其中我静态定义了一个相当大的字节数组(超过8000个字节)作为我每次运行单元测试时都不想读取的文件的字节数据。

private static final byte[] FILE_DATA = new byte[] {
12,-2,123,................
}

这在Eclipse中编译得很好,但是当通过Ant脚本编译时,我得到以下错误:

[javac] C:\workspace\CCUnitTest\src\UnitTest.java:72: code too large
[javac]     private static final byte[] FILE_DATA = new byte[] {
[javac]                                 ^

任何想法为什么和我如何避免这种情况?


:Shimi的答案确实奏效了。我将字节数组移到一个单独的类中,并且编译良好。谢谢!


答案 1

Java 中的方法在字节码中限制为 64k。静态初始化在单个方法中完成(请参阅链接),
您可以尝试从文件加载数组数据。


答案 2

可以从静态方法中的文件加载字节数组。这将确保它只加载一次所有单元测试。@BeforeClass


推荐