LD_调试与java

LD_调试与java,java,linux,Java,Linux,当我设置LD_DEBUG=files并运行Java程序时,我发现了许多类似以下的错误: /linux/depot/java-1.6.0_16_32/jre/lib/i386/libjava.so: error: symbol lookup error: undefined symbol: Java_sun_java2d_loops_MaskBlit_MaskBlit (fatal) TYPE fptr = CAST_TO_FN_PTR(TYPE, dlsym(RTLD_DEFAULT, s

当我设置LD_DEBUG=files并运行Java程序时,我发现了许多类似以下的错误:

/linux/depot/java-1.6.0_16_32/jre/lib/i386/libjava.so: error: symbol lookup error: undefined symbol: Java_sun_java2d_loops_MaskBlit_MaskBlit (fatal)  
TYPE fptr = CAST_TO_FN_PTR(TYPE, dlsym(RTLD_DEFAULT, symbol));
if (fptr != NULL) {
    // Do something different because this platform supports 'symbol'
}

这个信息很可怕,但显然我的程序运行正常。有谁能告诉我为什么会这样吗?

这并不可怕;这就是当您构建代码以在许多不同平台上运行时所发生的情况。只是jvm在寻找可选符号。在本例中,与2D和alpha合成有关。如果在运行时找不到符号,则会使用另一个代码路径。你可以把它看作是对图书馆的一种反思

jvm代码如下所示:

/linux/depot/java-1.6.0_16_32/jre/lib/i386/libjava.so: error: symbol lookup error: undefined symbol: Java_sun_java2d_loops_MaskBlit_MaskBlit (fatal)  
TYPE fptr = CAST_TO_FN_PTR(TYPE, dlsym(RTLD_DEFAULT, symbol));
if (fptr != NULL) {
    // Do something different because this platform supports 'symbol'
}

这并不可怕;这就是当您构建代码以在许多不同平台上运行时所发生的情况。只是jvm在寻找可选符号。在本例中,与2D和alpha合成有关。如果在运行时找不到符号,则会使用另一个代码路径。你可以把它看作是对图书馆的一种反思

jvm代码如下所示:

/linux/depot/java-1.6.0_16_32/jre/lib/i386/libjava.so: error: symbol lookup error: undefined symbol: Java_sun_java2d_loops_MaskBlit_MaskBlit (fatal)  
TYPE fptr = CAST_TO_FN_PTR(TYPE, dlsym(RTLD_DEFAULT, symbol));
if (fptr != NULL) {
    // Do something different because this platform supports 'symbol'
}

@达文·米勒:谢谢!:)@达文·米勒:谢谢!:)