2010-04-19 27 views
1

当我设置LD_DEBUG =文件并运行我的Java程序,我发现很多象这样的错误:LD_DEBUG和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) 

此信息是可怕的,但很明显,我的程序运行正常。谁能告诉我为什么会发生这种情况?

回答

1

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

JVM的代码是这样的:

TYPE fptr = CAST_TO_FN_PTR(TYPE, dlsym(RTLD_DEFAULT, symbol)); 
if (fptr != NULL) { 
    // Do something different because this platform supports 'symbol' 
} 
+0

@Davon_C_Miller:谢谢! :) – solotim 2010-04-20 03:09:09