【问题标题】:Is there a limit on how big a java file can be?java文件的大小有限制吗?
【发布时间】:2012-10-05 15:20:13
【问题描述】:

我正在开发一个需要生成 java 代码的项目。当我在 main 方法上遇到 65535 字节限制的问题时,我正在做一些测试。我生成的文件看起来像这样:

public class foo{
    public static void main(String[] args){
        //
        //7000 lines later
        //
    }
}

我认为通过这种方式生成文件我很聪明:

public class foo{
    public static void bar(){
        //
        //7000 lines later
        //
    }
    public static void main(String[] args){
        bar();
    }
}

但我发现 65535 字节的限制适用于每种方法。

我想知道将指令“缓冲”到多种方法中是否可以解决我的问题。 java文件的大小有什么限制吗?

【问题讨论】:

  • 写这么大的main方法有什么具体原因吗?
  • 如果你把所有的代码都写在main方法里,那你就错了。
  • 拥有一个包含 7000 多行的方法将是维护的噩梦。它还表明您的代码本质上不是模块化的。你应该尝试将你的代码分解成小的、可读的和合乎逻辑的方法。
  • 写这么大的mainmethod有什么具体原因吗?根据 OOAD(面向对象的分析和设计)概念,您应该编写模块化。一种方法不应包含多于几行(10 秒)。 7000 在一种方法中听起来不对。

标签: java file-io filesize


【解决方案1】:

文件可以是任意大小,但方法不能编译成超过 65535 字节的长度。

解决这个问题的唯一方法是

  • 使用较小的方法,这么大的方法是不可读的。
  • 如果它生成代码,创建多个方法。
  • 将信息外部化为数据文件或数据库。

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      It's a known bug/feature request (official Java bug tracker).

      不过,你应该把它分成不同的方法。

      【讨论】:

        【解决方案4】:

        我认为存在限制并且您已经达到了 - 正如 here 所述。

        另外,看看这个discussion

        【讨论】:

          猜你喜欢
          • 2011-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多