java文件的大小有限制吗?

Posted

技术标签:

【中文标题】java文件的大小有限制吗?【英文标题】:Is there a limit on how big a java file can be? 【发布时间】: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 多行的方法将是维护的噩梦。它还表明您的代码本质上不是模块化的。你应该尝试将你的代码分解成小的、可读的和合乎逻辑的方法。 看看这个链接weblogs.java.net/blog/editor/archive/2010/01/19/… 写这么大的mainmethod有什么具体原因吗?根据 OOAD(面向对象的分析和设计)概念,您应该编写模块化。一种方法不应包含多于几行(10 秒)。 7000 在一种方法中听起来不对。 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】: 是的,请参阅SO answer Sun Official Site

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

另外,看看这个discussion。

【讨论】:

以上是关于java文件的大小有限制吗?的主要内容,如果未能解决你的问题,请参考以下文章

https请求的post接口对数据的大小有限制吗

文本文件有大小限制吗? [复制]

css文件大小有限制吗?

求教httpclient 传输的数据大小限制问题

IE9 对 CSS 有文件大小限制吗?

jQuery在使用ajax时对上传文件的大小有限制吗? [复制]