【问题标题】:Java compile error: code too largeJava编译错误:代码太大
【发布时间】:2016-03-23 02:24:10
【问题描述】:

所以我们正在开发一个注册系统,现在我们因为编译期间的内存错误而卡住了。

我们在网上查了一下,发现错误信息的原因是.java文件的大小。我们的 EnrollmentSystem 类现在有 10171 行代码。

我们使用 Netbeans 的 GUI 构建器来设计它。我们想创建一个单独的类来包含其他面板,但我们不知道如何从另一个类中获取组件并将其添加到原始类(包含 10171 行的类),然后在同一个选项卡上显示它的内容。

*我们需要完成的是,当用户单击特定的选项卡式窗格时,它会显示来自另一个类的面板。

我知道这与 对象.add() 实例化

我们尝试了 getComponent(nth);但真的不知道如何管理类和添加来自不同类的组件。

【问题讨论】:

  • 您是否尝试过为 javac 的编译调用增加内存?

标签: java swing components


【解决方案1】:

对此的简单回答是 (a) 停止使用 GUI 编辑器并手动编写代码,以及 (b) 将 GUI init 方法拆分为 2 个或更多子方法

【讨论】:

    【解决方案2】:

    由于异常处理实现,Java 中的方法存在 64K 字节码大小限制:

    end_pc 是排他性的这一事实是 Java 虚拟机设计中的一个历史错误:如果 Java 虚拟机的方法代码正好是 65535 字节长并且以 1 字节长的指令结束,那么该指令不能由异常处理程序保护。编译器编写者可以通过将任何方法、实例初始化方法或静态初始化程序(任何代码数组的大小)生成的 Java 虚拟机代码的最大大小限制为 65534 字节来解决此错误。

    这适用于 Java 78

    您必须将任何违反此约束的方法一分为二。使用 GUI Builder 可能有也可能没有方法;如果你手动构建你的界面,你肯定会有这个选项。

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      相关资源
      最近更新 更多