Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中初始化大型数组的快捷方法显示为;找不到主类“;错误_Java_Arrays - Fatal编程技术网

在java中初始化大型数组的快捷方法显示为;找不到主类“;错误

在java中初始化大型数组的快捷方法显示为;找不到主类“;错误,java,arrays,Java,Arrays,我使用的是Netbeans,它只是一个简单的代码,我试图初始化名为primes的数组,它将由大约100000个整数组成 int[] primes = {0, 0, 1, 1, 1, 1, 2.......................................}; 据我所知,这个错误是由大数组引起的。 如何消除“找不到或加载主类”错误?我应该指出,列出100000个元素的数组初始值设定项不会编译。Java类文件规范对某些内容进行了限制,其中之一是方法的代码数组不能大于65535字节。具

我使用的是Netbeans,它只是一个简单的代码,我试图初始化名为primes的数组,它将由大约100000个整数组成

int[] primes = {0, 0, 1, 1, 1, 1, 2.......................................};
据我所知,这个错误是由大数组引起的。
如何消除“找不到或加载主类”错误?

我应该指出,列出100000个元素的数组初始值设定项不会编译。Java类文件规范对某些内容进行了限制,其中之一是方法的代码数组不能大于65535字节。具有100000个值的数组初始值设定项将超过该限制。。。很容易

参考文献:

(规范明确提到了代码大小限制。其他限制没有得到这种处理;例如,常量池中的常量数量、类中的方法数量等等。无论哪种方式,这些限制都是类文件格式中各个字段的大小所固有的。)

我建议您将素数放入JAR文件中的一个资源中,并将它们读入分配了正确大小的数组中

后续行动


“我还尝试将数组中的数字保留在一个字符串中,字符串之间用空格分隔[…],那么,字符串的大小是否也有限制?”

对。在(修改的)UTF-8编码中,字符串文字长度最多只能为65535字节;请参阅JVM规范和

(这就是为什么我不推荐这种方法…)



有可能这实际上是导致您的“找不到主”问题。。。但只有当您忽略编译错误并尝试运行代码时,才可以。如果您正在这样做,您应该更改IDE首选项,这样您就不会意外地尝试运行有编译错误的代码。(这将节省您调试伪运行时错误的时间/痛苦,这些错误实际上是编译错误…就像这一个。)

如果您预先知道int在数组中的位置,您可以使用
新建int[100000]
创建它并使用

但您需要适当调整堆的大小

要像您的示例中那样用1填充索引2到5,代码如下:

final int[] primes = new int[100000];
Arrays.fill(primes, 2, 6, 1); // upper index is exclusive
// etc etc

那么…你的主要方法是什么?(依我看…很清楚OP在问什么。只是症状的组合…嗯…很棘手。)我必须说,你需要付出大量的努力来产生这个错误:),100000个条目@洛基——不是真的。只是一个用你最喜欢的脚本语言编写的小程序,以正确的格式发出素数列表。。。然后剪切并粘贴。+1。如果你把这个事实的官方链接放进去,那会更有帮助。我也尝试过把数组中的数字放在一个用空格分隔的字符串中,比如string primes=“0 1 1 1………”。但它仍然显示出同样的错误。那么,字符串的大小也有限制吗?@rishy提供更多的代码可以帮助我们找到它error@Bingo-这很简单,我只是将一个数组从一个文件粘贴到我的代码中,正如我提到的,这个数组可能非常大。但同样大小的字符串也会出现同样的问题。