Вы можете использовать внутренние классы, так как у каждого будет свой предел в 64 КБ. Это может не помочь вам с одним большим массивом, поскольку внутренний класс будет подвергаться тому же пределу статического инициализатора, что и ваш основной класс. Однако вы заявили, что вам удалось решить проблему, переместив массив в отдельный класс, поэтому я подозреваю, что вы загружаете не только этот единственный массив в свой основной класс.
Вместо:
private static final byte[] FILE_DATA = new byte[] {12,-2,123,...,<LARGE>};
Попробуйте:
private static final class FILE_DATA
{
private static final byte[] VALUES = new byte[] {12,-2,123,...,<LARGE>};
}
Тогда вы можете получить доступ к значениям как FILE_DATA.VALUES[i]
вместо FILE_DATA[i]
, но вы можете ограничиться 128 КБ, а не только 64 КБ.