2012-01-12 43 views
4

我经常从YUICompressor得到似乎是一个stackoverflow错误;-)。以下是成千上万的误差线是来自试图压缩24074字节的CSS样式表(而不是“由java.lang.StackOverflowError的造成约8线下)第一部分:YUICompressor崩溃 - stackoverflow错误

iMac1:src jas$ min ../style2.min.css style2.css 
Exception in thread "main" java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21) 
Caused by: java.lang.StackOverflowError 
    at java.lang.Character.codePointAt(Character.java:2335) 
    at java.util.regex.Pattern$CharProperty.match(Pattern.java:3344) 
    at java.util.regex.Pattern$Branch.match(Pattern.java:4114) 

...(加1021更多错误行)

错误通常发生在向要压缩的文件中添加几行文件之后,css很好,并且在未压缩的格式中完美工作,我没有看到类型的特定模式的选择器添加到文件中,导致错误在这种情况下,将以下选择器添加到以前可压缩的文件导致错误:

#thisisatest 
{ 
    margin-left:87px; 
} 

我想知道是否有一个标志可以帮助扩大堆栈的Java。或者如果那不是问题,那是什么?

编辑:

当我张贴了这个问题,我想通了,我应该检查Java命令来查看是否有扩大栈的参数。原来它是-Xssn,其中“n”是表示堆栈大小的参数。它的默认值是512k。所以我尝试了1024k,但仍然导致了stackoverflow。然而,尝试2048k的作品,我认为这可能是解决方案。

回答

6

正如我的编辑发布,解决方案是将参数添加到java命令。线索是在5挡“在”行错误行,如下所示:

at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21) 
Caused by: java.lang.StackOverflowError 

看到,这个问题是一个“StackOverlowError” ;-)给的建议,尝试增加堆栈大小。默认值是512k。我第一次尝试1024k没有奏效。然而将它增加到2048k确实有用,而且我没有进一步的问题。

+1

我该如何设置java的默认-Xssn? – 2013-05-30 09:15:41