科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[王洪伟]使用maven构建项目java.nio.BufferOverflowException问题的解决

[王洪伟]使用maven构建项目java.nio.BufferOverflowException问题的解决

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在使用maven构建Java开源项目,有时候会遇到BufferOverflowException异常。本文就此现象的原因作了简要的说明并提供一个解决方法。

作者:王洪伟 来源:CSDN 2007年9月28日

关键字: Maven java

  • 评论
  • 分享微博
  • 分享邮件

问题:

在使用maven构建Java开源项目,有时候会遇到BufferOverflowException异常(异常详细信息见后面)。

是Bug吗?

在sun的网站上有jdk 1.4.2和jdk 1.6.0 的bug报告,其实这个问题在 jdk 1.5.0_10和jdk 1.5.0_11中也有.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6526175

虽然sun不认为这是一个bug,解决建议是增加heap size,就是设置环境变量,增加内存的使用参数值;经过测试,这种解决方法不能有效消除错误的产生。

其他人是如何解决的?

从google中找到在其他的apache的项目中出现过同样的异常,但是都没能解决。

问题产生的原因?

可能原因是由于字符集使用GBK、UTF-8或者UTF-16导致使用多字节存放字符,内存使用增加,堆(heap)的尺寸无法提供程序所需的空间,造成异常。更深入的分析还在进行中。

解决方法:

将操作系统的区域和语言选项中的区域设置为 English 即可!

辅助的方法是在系统环境变量中增加设置: MAVEN_OPTS=-Xmx512m

详细错误信息:

Failure executing javac, but could not parse the error:
编译器 (1.5.0_10) 中出现异常。 如果在 Bug Parade 中没有找到该错误,请在 Java Dev
eloper Connection (http://java.sun.com/webapps/bugreport )  对该错误进行归档。 请
在报告中附上您的程序和以下诊断信息。谢谢您的合作。
java.nio.BufferOverflowException
        at java.nio.Buffer.nextPutIndex(Buffer.java:419)
        at java.nio.HeapCharBuffer.put(HeapCharBuffer.java:145)
        at com.sun.tools.javac.parser.Scanner.decode(Scanner.java:405)
        at com.sun.tools.javac.parser.Scanner.<init>(Scanner.java:304)
        at com.sun.tools.javac.parser.Scanner.<init>(Scanner.java:238)
        at com.sun.tools.javac.parser.Scanner$Factory.newScanner(Scanner.java:72
)
        at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:254)
        at com.sun.tools.javac.main.JavaCompiler.parse (JavaCompiler.java:281)
        at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:399)
        at com.sun.tools.javac.main.Main.compile(Main.java:592)
        at com.sun.tools.javac.main.Main.compile (Main.java:544)
        at com.sun.tools.javac.Main.compile(Main.java:85)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess (Jav
acCompiler.java:400)
        at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompile
r.java:136)
        at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompiler
Mojo.java :483)
        at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:111)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:412)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals (Defa
ultLifecycleExecutor.java:534)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLi
fecycle(DefaultLifecycleExecutor.java:475)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal (Defau
ltLifecycleExecutor.java:454)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:306)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:273)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:140)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java :322)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke (Method.java:585)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode (Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1599824

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章